Утилита setfacl#

Утилита setfacl устанавливает или изменяет списки контроля доступа (ACL) к файлам и каталогам.

Если утилита используется в файловой системе, не поддерживающей ACL, она работает с битами разрешения. setfacl изменяет биты при их несоответствии с ACL, записывает сообщение об ошибке в standard error и возвращает статус выхода больше 0.

Синтаксис утилиты:

setfacl <options> <file_or_directory>

Где:

  • <options> - опции;

  • <file_or_directory> – файл или каталог, к которому необходимо применить ACL.

Часто используемые опции утилиты представлены в таблице ниже.

Опция

Описание

-b, --remove-all

Удаление всех дополнительных элементов ACL. Базовые элементы сохраняются

-d, --default

Применение ACL по умолчанию

-m, --modify

Изменение текущих ACL для каталога

-M, --modify-file

Изменение текущих ACL для файла

--set, --set-file

Замена действующих прав ACL на новые

-x, -X, --remove

Удаление записи из ACL файла

--test

Включение тестового режима. ACL не изменяются

Примеры использования#

  • Для изменения ACL в каталоге пользователя, имеющего доступ на чтение и запись, воспользуйтесь командой:

    setfacl --modify u:<username>:rw <directory>
    

    В результате выполнения команды для пользователя <username> изменятся ACL в каталоге <directory>.

  • Для изменения ACL по умолчанию для каталога, доступного всем пользователям, введите команду:

    setfacl -m -d u::rw <directory>
    

    В результате выполнения команды в каталоге <directory> изменятся ACL по умолчанию.

  • Для удаления ACL в каталоге пользователя воспользуйтесь командой:

    setfacl --remove u:<username> <directory>
    

    В результате выполнения команды для пользователя <username> в каталоге <directory> удалятся ACL.

  • Для удаления всех записей ACL файла <file> используйте команду:

    setfacl --remove-all <file>