getfacl и setfacl — утилиты, которые применяются для получения информации об ограничениях доступа и добавления этих ограничений.
getfacl и setfacl
В Ubuntu утилиты доступны по умолчанию и их установка отдельно не требуется.
Предлагаемый ими функционал является дополнением к стандартным ограничениям построенным на правах доступа, системных пользователях и группах.
По определенному файлу информацию можно получить так
getfacl test.txt
Пример вывода приведен на скриншоте:
Утилита показывает владельца файла, группу владельца, а также права доступа для владельца, группы и остальных.
setfacl позволяет устанавливать права
Отличие данного способа ограничения доступа от chmod и chown в большей гибкости. Права можно задать для конкретных пользователей
setfacl -m 'u:USER:wrx' test.txt
В примере для файла test.txt, также и для директории
На скриншоте видно, что права 777 установлены для пользователя www-data. Для всех остальных пользователей продолжают действовать права доступа на чтение и запись.
Флаг -m говорит о том что нужно модифицировать системную таблицу в которой заданы права доступа.
chmod дал бы права либо 644 (read-write—read—read для владельца—группы—остальных) на для всех пользователей, либо 777 (read—write—execute) для всех.
setfacl даёт больше возможностей.
Аналогично доступ для пользователя можно удалить
setfacl -x 'u:USER' test.txt
Или его можно удалить для всех используя флаг -b.
setfacl -b test.txt
Для группы
setfacl -m 'g:group:wrx' test.txt
Если использовать утилиты не удается — стоит проверить с какими флагами монтируется в системе рабочий системный раздел. Ограничения часто встречаются на этом уровне.