ACL

Классические права доступа в Unix состоят из трёх разделов: User, Group, Other (ugo), в каждом из которых определяются три права на доступ к файлу: Read, Write, eXecute (rwx). При этом, в атрибутах файла прописан ровно один владелец (User) и одна группа (Group).

Для того, чтобы можно было назначать права на объекты в файловой системе (ФС) с точностью до пользователя были введены списки доступа (Access Lists, ACL). ACL позволяют связать с объектом ФС сколько угодно пользователей и групп, и назначить каждому свой набор прав rwx. Классические группы прав ugo считаются тремя элементами списка ACL, которые присутствуют в ACL всегда.

Просмотр ACL:

$ chmod 0644 /tmp/user1-tmp
$ getfacl /tmp/user1-tmp

getfacl: Removing leading '/' from absolute path names
# file: tmp/user1-tmp
# owner: user1
# group: users
user::rw-
group::r--
mask::rwx
other::r--

Установка ACL setfacl имеет две опции -m (modify) — добавить или изменить ACL и '-x' — удалить ACL.

$ setfacl -m user2:rwx /tmp/user1-tmp

$ getfacl /tmp/user1-tmp
getfacl: Removing leading '/' from absolute path names
# file: user1-tmp
# owner: user1
# group: user1
user::rwx
user:user2:rwx
group::rwx
mask::rwx
other::---