Стандартная модель прав
rwx учитывает только владельца файла, его группу и остальных пользователей, без возможности выдавать права точечно. ACL (Access Control Lists) позволяют выдавать точечные права отдельным пользователям и группам, не меняя владельца файла и не трогая основную группу. Просмотр ACL файла или каталога:
getfacl file.txt
Показывает обычные права доступа и все дополнительные записи ACL, включая маску (mask), которая может ограничивать реальные (effective) права.
Выдать пользователю права чтения и записи:
setfacl -m u:alice:rw file.txt
Пользователь alice получит доступ независимо от основной группы файла. Если фактические права оказались меньше ожидаемых, проверьте маску ACL в выводе
getfacl.Выдать группе права чтения:
setfacl -m g:devs:r file.txt
Удобно для совместного доступа к файлам проекта. Для каталогов обычно требуется также право выполнения (x), иначе нельзя открыть каталог и работать с его содержимым.
Удалить ACL для конкретного пользователя:
setfacl -x u:alice file.txt
Удаляет только дополнительную запись ACL, не затрагивая стандартные права владельца и группы.
Рекурсивно применить ACL к каталогу:
setfacl -R -m u:alice:rwx /shared/data
Права будут установлены для всех вложенных файлов и подкаталогов.
Используйте аккуратно: команда изменит доступ ко всему содержимому дерева.
Задать ACL по умолчанию для новых объектов в каталоге:
setfacl -d -m u:alice:rwx /shared/data
Такие права будут автоматически наследоваться новыми файлами и папками, создаваемыми внутри каталога. Уже существующие объекты не изменяются.
Удалить все расширенные ACL (вернуться к обычным правам):
setfacl -b file.txt
Удаляет все дополнительные записи ACL и оставляет только стандартные
rwx.Удалить наследуемые (default) ACL у каталога:
setfacl -k /shared/data
Убирает правила наследования для новых объектов внутри каталога.
🔥 ACL — крутой инструмент тонкой настройки доступа в многопользовательских системах, когда стандартной модели прав недостаточно, а менять владельцев или группы нежелательно.
➡️ DevOps Ready | #практика