ACL (Access Control Lists)

ACL (Access Control Lists) — это механизм расширенного управления правами доступа к файлам и каталогам в Linux.
Стандартная модель прав (rwx для владельца, группы и остальных) иногда слишком ограничена. ACL позволяет назначать права дополнительным пользователям и группам, не меняя владельца или основную группу файла.
В Ubuntu ACL поддерживается большинством современных файловых систем (например, ext4). Обычно она уже включена по умолчанию.
ACL полезен, когда нужно:
— дать доступ конкретному пользователю к файлу
— настроить разные уровни доступа нескольким пользователям
— управлять правами в общих каталогах

Синтаксис
Основная структура записи ACL выглядит так:
тип:имя:права
Где:

ПолеЗначение
типuser (u), group (g), other (o), mask (m)
имяпользователь или группа
праваr (read), w (write), x (execute)

Примеры:

u:admin:rwx
g:developers:rw-
o::r--

Основные команды и опции

getfacl
Показать ACL файла или каталога.

getfacl test.txt

Показывает:
— владельца
— группу
— ACL записи

setfacl
Устанавливает или изменяет ACL.
Основной синтаксис:

setfacl [опции] запись файл

Самые используемые опции:

ОпцияЗначение
-mдобавить или изменить ACL
-xудалить ACL
-bудалить все ACL
-Rрекурсивно
-dустановить default ACL для каталога

Примеры:

#Удалить правило
setfacl -x u:admin файл
#Удалить все ACL
setfacl -b test.txt
#Дать пользователю доступ к файлу
setfacl -m u:admin:rw test.txt
#Дать группе доступ к каталогу
setfacl -m g:developers:rwx project/
#Рекурсивные права
setfacl -R -m u:admin:rwx project/
#Default ACL
setfacl -d -m u:admin:rwx shared/

Маска (mask) в ACL

Mask — это запись ACL, которая ограничивает максимальные права доступа для:
— всех именованных пользователей
— всех групп
— основной группы файла

Пример:

#ACL файла (проверить getfacl file)
user::rwx
user:admin:rwx
group::rwx
mask::r--
other::---

Несмотря на то что для admin указано rwx, фактически он получит r— поскольку mask ограничивает права.

Изменение mask
Mask можно изменить так:

setfacl -m m:r-- file
или
setfacl -m mask:r-- file
Прокрутить вверх