Як встановити дозволи файлу за замовчуванням для всіх папок / файлів у каталозі?


254

Я хочу встановити папку таким, щоб все, що створюється в ній (каталоги, файли) успадковувало дозволи та групування за замовчуванням.

Давайте називати групу "медіа". А також, створені в каталозі папки / файли повинні мати g + rw автоматично.


1
Хіба це не контролюється користувачем, який створює новий файл / папку, і його umask?
— Wadih M.

umask стосується дозволів, але я не вірю, що це щось робить із встановленням групи за замовчуванням, яка не є самим користувачем.
— Кріс

1
Яка ОС? Теги потрібні. setfaclACL за замовчуванням не існує на AIX.
— Аміт Найду

Відповіді:


269

Я знайшов це: Застосування дозволів за замовчуванням

Зі статті:

chmod g+s <directory>  //set gid 
setfacl -d -m g::rwx /<directory>  //set group to rwx default 
setfacl -d -m o::rx /<directory>   //set other

Далі ми можемо перевірити:

getfacl /<directory>

Вихід:

# file: ../<directory>/
# owner: <user>
# group: media
# flags: -s-
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::r-x

5
Так, для липкого шматочка!
— габе.

22
Дозволяє не плутати gid з липким шматочком.
— Аміт Найду

10
g + s забезпечить, що новий вміст у каталозі успадкує право власності на групу. setfacl змінює лише chmod, у вашому випадку встановлює дозвіл на o = rx
— Steen Schütt

10
Зауважте, що ACL повинен бути включений (включений як один із параметрів монтування змонтованої файлової системи), щоб права файлу були успадковані.
— sg23

11
Ви можете замість цього використати "X", щоб він встановив дозвіл на виконання лише у каталогах, а не у файлахsetfacl -d -m g::rwX /<directory>
— Adrian Gunawan

27

Це доповнення до відповіді Кріса, воно засноване на моєму досвіді моєї установки Linux Linux.

Використання перемикача за замовчуванням (-d) та модифікаційного перемикача (-m) змінить лише дозволи за замовчуванням, але залишить недоторканими існуючі:

setfacl -d -m g::rwx /<directory>

Якщо ви хочете змінити всю структуру дозволів папки, включаючи існуючу (вам доведеться зробити додатковий рядок і зробити його рекурсивним -R:

setfacl -R -m g::rwx /<directory>

напр.

setfacl -R -m g::rwx /home/limited.users/<directory> // gives group read,write,exec permissions for currently existing files and folders, recursively
setfacl -R -m o::x /home/limited.users/<directory> //revokes read and write permission for everyone else in existing folder and subfolders 
setfacl -R -d -m g::rwx /home/limited.users/<directory> // gives group rwx permissions by default, recursively
setfacl -R -d -m o::--- /home/limited.users/<directory> //revokes read, write and execute permissions for everyone else. 

( CREDIT to markdwite у коментарях до sytax лінії відкликання всіх привілеїв)


2
Щоб скасувати групові привілеї (як приклад): sudo setfacl -d -mg :: --- / path
— markdwhite

1
це просто помилка, яка setfacl -R -m g::rwx /<directory>двічі вказує у своїй відповіді?
— Шейн Роватт

0

Додайте себе / зареєструвавшись користувача до групи даних www, щоб ми могли працювати з файлами, створеними сервером даних www

sudo usermod -a -G www-data $USER

Потрібно перезапустити / переробити, щоб нова додана група набула чинності

cd /var/www

Додайте www-дані як член групи в папці html, а ваш користувач як власник, таким чином ми володіємо нею як членом групи

sudo chown -R $USER:www-data html

Поставте своє ім’я замість USER

Встановіть читання, запис, виконання дозволу у міру необхідності, (ugo) u = користувач, g = група, o = інші

sudo chmod 750 html

Встановіть GID HTML, тепер новостворені файли в html успадкують дозволи власності:

sudo chmod g+s html

Це створює правила за замовчуванням для новостворених файлів / dirs у каталозі html та підкаталогах.

sudo setfacl -R -d -m u::rwX -m g::rX -m o::000 html

Зробіть SELinux, якщо встановлений, ігноруйте контекстну вимогу www-data, щоб вона дозволила дозволяти записувати

sudo setsebool -P httpd_unified 1

каталог списку, щоб переглянути нові дозволи

ls -ld html

Повертає це

drwxrwsr-x+   3 html www-data

Trailing + означає, що ACL, Список контролю доступу, встановлений у каталозі.

Довідка : Посилання на форум


-2

За допомогою наступної команди ви можете встановити файл дозволу за замовчуванням на файл:

chacl -R filename

3
Чим це відрізняється від інших відповідей? І наведіть кілька прикладів
— Ромео Нінов

3
Ви впевнені, що це робить? linux.die.net/man/1/chacl вказує, що це видалить ACL.
— Jeff Schaller
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.