acl setfacl getfacl

1. Просмотр прав — getfacl

Используется для просмотра расширенных списков доступа у файла или директории.

  • Просмотреть ACL файла/папки:
getfacl file.txt
getfacl /path/to/dir/
  • Рекурсивный просмотр (для директории и всего её содержимого):
getfacl -R /path/to/dir/

2. Настройка прав — setfacl

Используется для добавления, изменения, удаления или копирования прав.

➕ Добавление / Изменение прав (-m / --modify)

Во всех примерах rwx обозначают read (чтение), write (запись), execute (исполнение/заход в папку).

  • Дать права пользователю:
setfacl -m u:username:rwx file.txt
  • Дать права группе:
setfacl -m g:groupname:r-x file.txt
  • Рекурсивно применить права ко всем файлам и папкам внутри:
setfacl -R -m g:groupname:rwx /path/to/dir/

📂 Наследование прав по умолчанию (d: или -d)

Чтобы новые файлы и папки, создаваемые внутри директории, автоматически наследовали нужные права:

  • Задать ACL по умолчанию для группы:
setfacl -m d:g:groupname:rwx /path/to/dir/

(Теперь любой файл, созданный внутри /path/to/dir/, сразу даст группе groupname права rwx).

➖ Удаление прав (-x и -b)

  • Удалить права конкретного пользователя или группы:
setfacl -x u:username file.txt
setfacl -x g:groupname file.txt
  • Удалить ВСЕ расширенные записи ACL (вернуть к обычным chmod-правам):
setfacl -b file.txt
  • Удалить только ACL по умолчанию (default):
setfacl -k /path/to/dir/

💡 Полезный лайфхак

Если вам нужно скопировать ACL-права с одного файла/папки на другой:

getfacl file_source.txt | setfacl --set-file=- file_target.txt