Утилиты getfacl и setfacl в Linux


getfacl и setfacl — утилиты, которые применяются для получения информации об ограничениях доступа и добавления этих ограничений.



getfacl и setfacl


В Ubuntu утилиты доступны по умолчанию и их установка отдельно не требуется.



Предлагаемый ими функционал является дополнением к стандартным ограничениям построенным на правах доступа, системных пользователях и группах.



По определенному файлу информацию можно получить так

getfacl test.txt



Пример вывода приведен на скриншоте:

getfacl linux


Утилита показывает владельца файла, группу владельца, а также права доступа для владельца, группы и остальных.



setfacl позволяет устанавливать права


Отличие данного способа ограничения доступа от chmod и chown в большей гибкости. Права можно задать для конкретных пользователей

setfacl -m 'u:USER:wrx' test.txt

В примере для файла test.txt, также и для директории



setfacl пример


На скриншоте видно, что права 777 установлены для пользователя www-data. Для всех остальных пользователей продолжают действовать права доступа на чтение и запись.

Флаг -m говорит о том что нужно модифицировать системную таблицу в которой заданы права доступа.



chmod дал бы права либо 644 (read-writereadread для владельцагруппыостальных) на для всех пользователей, либо 777 (readwriteexecute) для всех.

setfacl даёт больше возможностей.



Аналогично доступ для пользователя можно удалить

setfacl -x 'u:USER' test.txt



Или его можно удалить для всех используя флаг -b.

setfacl -b test.txt



Для группы

setfacl -m 'g:group:wrx' test.txt



Если использовать утилиты не удается — стоит проверить с какими флагами монтируется в системе рабочий системный раздел. Ограничения часто встречаются на этом уровне.


Про создание системных пользователей.

Сказать спасибо