Утилита setfacl#

Описание#

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

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

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

setfacl <options> <file_or_directory>

Где:

  • <options> - опции;

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

Опции#

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

Опции setfacl#

Опция

Описание

-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>
    

Дополнительная информация#

Для получения дополнительной информации введите команду:

man setfacl

Или:

setfacl --help