Ответ
ACL (Access Control Lists, списки контроля доступа) в Linux — это расширение стандартной модели прав доступа user/group/others (rwx). ACL позволяет назначать права на файлы и каталоги для произвольного количества пользователей и групп, что необходимо в сложных многопользовательских средах или при развертывании сервисов.
Основные команды:
- Установка прав:
setfacl -m u:jenkins:rwx,d:u:jenkins:rwx /opt/deploy/-m— modify (изменить ACL).u:jenkins:rwx— дать пользователюjenkinsправа на чтение, запись и выполнение.d:u:jenkins:rwx— установить правило по умолчанию для новых файлов в этом каталоге.
- Просмотр прав:
getfacl /opt/deploy/ - Удаление конкретной записи:
setfacl -x u:jenkins /opt/deploy/ - Удаление всех ACL:
setfacl -b /opt/deploy/
Практическое применение в DevOps:
- Доступ для сервисных пользователей: Веб-серверу (
www-data) может требоваться доступ на запись в каталог загрузок, принадлежащий другому пользователю, без изменения владельца или основной группы файла. - Совместная работа в каталогах: Несколько разработчиков или CI/CD-агентов (Jenkins, GitLab Runner) могут иметь разные права в общем рабочем каталоге.
- Более тонкое управление, чем sudo: Вместо выдачи полного sudo можно дать через ACL право на запись в конкретный системный конфиг.
Важно: Файловая система должна быть смонтирована с опцией acl (по умолчанию в ext4, xfs). Проверить можно командой tune2fs -l /dev/sda1 | grep "Default mount options".