використання root для mkdir в домашньому каталозі інших користувачів


27

трохи важко намагаючись створити папку під папкою іншого користувача /home/devuser1/pubic_html. Я намагаюся уникати використання sudoта пошуку альтернативи. Дозволи в зазначеній папці звучать як:

drwxr-s--- 2 devuser1  www-data 4096 Apr 28 19:40 public_html

Як альтернатива, якщо я використовую sudoпрефікс, які б це були наслідки? Я читав, що sudoдля створення папки це погана практика . Після створення нової папки я все ще змінюю право власності на неї на відповідного користувача. Приклад:

chown -vR devuser1:www-data /home/devuser1/public_html/$vhost

Відповіді:


31

За допомогою програми installможна створити каталог із певним власником, групою та режимом:

install -d -o <user> -g <group> -m <mode> <path>

29

sudo -u [username] mkdir /home/[username]/public_html/[folder_name] працює чудово.

Як я бачу, дозволи та права власності однакові, якщо я повинен був увійти як той самий користувач і створити папку внизу public_html.

Ви також можете зателефонувати su -c "mkdir /home/[username]/public_html/[folder_name]" [username]


2
Під час запуску sudo -u USERNAME mkdir DIRNAMEви виконуєте mkdirкоманду як користувач USERNAME. Це не зовсім еквівалентно входу як USERNAME, тому що вхід в систему також передбачає встановлення змінних оточуючих середовищ тощо, але це важлива частина, а саме виконання процесу як конкретного користувача.
Жиль "ТАК - перестань бути злим"

1
Також цей користувач може не мати дозволу.
mahemoff

1

З огляду на ці дозволи, лише власник каталогу або суперкористувач може створювати підкаталоги.

Єдиний спосіб, щоб ви могли уникнути використання додаткових привілеїв для створення папки, це змінити право власності на себе (з sudo), створити підкаталог і, нарешті, повернути право власності, але це не виглядає як хороше рішення для мене.


Так, важко це. Це нерозумне питання, але які мої варіанти?
maGz

як щодо (як root) виконання команди як цього користувача ?: sudo -u devuser1 mkdir /home/devuser1/public_html/test. Це не те саме, що створити папку, sudoчи не так? ls -alрозкриває:drwxr-sr-x 2 devuser1 www-data 4096 Apr 28 23:49 test
maGz

Можливо, я наївний, але насправді я не бачу зла в створенні папки sudo, доки ти зміниш право власності після цього.
RSFalcon7

З того, що lsрозкривається у вмісті користувача public_html, видається, що зміна права власності не потрібна.
maGz

Я думаю, що я теж наївний, думаючи про це: я не створюю папку su, а замість цього використовую її для автентифікації себе як користувача, який збирається створити папку ... чи це має сенс?
maGz

0

Я намагався зробити це mkdir -p /srv/postgres/data/mydirале тому

drwxr-xr-x 3 root root 4.0K Apr 7 08:26 srv має власника root

ні install -d -o <user> -g <group> -m <mode> <path> @ user2313838

ні sudo -u postgres mkdir -p /srv/postgres/data/mydirпрацює @maGz

Тому я повинен розділити його на дві команди:

sudo mkdir -p /srv/postgres/data/mydir
sudo chown postgres:postgres /srv/postgres -R
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.