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


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.