Устанавливаем:
apt-get install acl
Редактируем fstab:
/dev/sda9 /home ext3 defaults,acl 0 2
Перемонтируем раздел:
mount -o remount /home
И, собственно шпаргалка (www.opennet.ru):
setfacl -опции ACL_структура, ACL_структура,...,ACL_структура имя_файла имя_файла ...
ACL-структура представляет собой одну из следующих конструкций:
- [d[efault]:][u[ser]:][пользователь] [:[+|^]режимы_доступа]
- Определяет режим доступа к файлу или каталогу пользователя (ACL_USER_OBJ). Если пользователь не указан, определяет режим доступа пользователя-владельца (ACL_USER).
- [d[efault]:] g[roup]:[группа] [:[+|^]режимы_доступа]
- То же, что и предыдущая конструкция, но для группы (ACL_GROUP_OBJ или ACL_GROUP ).
- [d[efault]:] m[ask] [:[+|^] режимы_доступа]
- Определяет действующие права доступа (ACL_MASK).
- [d[efault]:] o[ther] [:[+|^] режимы_доступа]
- Определяет режим доступа для остальных пользователей (ACL_OTHER).
Присутствие компонента d (default) в конструкции указывает, что устанавливается Default ACL. При указании режима доступа без модификаторов (+ и ^), предыдущий режим доступа заменяется указанным в конструкции. При использовании модификатора + указанный режим доступа добавляется к существующему, при использовании ^ - удаляется. При использовании нескольких ACL-конструкции в строке запуска они разделяются запятыми. Примеры:
- u::rwx
- Определяет режим доступа к файлу (каталогу) для пользователя-владельца на чтение, запись и запуск (просмотр).
- g:users:+w
- Добавляет к правам группы users доступ на запись.
- d:u:user1:^rwx
- d:u:user1:---
- У пользователя user1 не будет доступа к файлам (каталогам), которые будут создаваться в указанном в командной строке каталоге.
- o:r-x
- o:rx
- Определяет режим доступа к файлу (каталогу) остальных пользователей - чтение и запуск (просмотр)
- m:^w
- Убирает из действующих прав доступ на запись.
Для установки и изменения ACL используются следующие опции:
- -s
- Заменяет полностью ACL файла на указанный в командной строке.
setfacl -s u::rwx,g::---,o:---,u:user1:rwx,g:users:rx,u:user2:--- /home/dh
getfacl /home/dh
Вывод:# file: home/dh
# owner: dh
# group: root
user::rwx
user:user1:rwx
user:user2:---
group::---
group:users:r-x
mask:rwx
other:---
- -m
- Изменяет режимы доступа к файлу (каталогу).
setfacl -m g::rwx /home/dh
setfacl -m u:user1:rx, g:users:+w, d:u::rwx, d:g::--- /home/dh
setfacl -m u:user2:rwx /home/dh
setfacl -m u:nobody:rx,g:nobody:rx /home/dh
setfacl -m m:^w /home/dh
getfacl /home/dh
Вывод:# file: home/dh
# owner: dh
# group: root
user::rwx
user:nobody:r-x
user:user1:r-x
user:user2:rwx #effective:r-x
group::rwx #effective:r-x
group:nobody:r-x
group:users:rwx #effective:r-x
mask:r-x
other:---
default:user::rwx
default:group::---
default:other:---
- -x
- Убирает правила доступа из ACL.
setfacl -x u:nobody /home/dh
setfacl -x g:nobody /home/dh
setfacl -x user1,user2 /home/dh
setfacl -x g:users /home/dh
getfacl /home/dh
Вывод:# file: home/dh
# owner: dh
# group: root
user::rwx
group::rwx
mask:rwx
other:---
default:user::rwx
default:group::---
default:other:---
Таким образом можно изменять права доступа к любому файлу для любого пользователя и группы.