Организация UNIX-систем и ОС Solaris

Расширенные права доступа (ACL) к каталогам


Кроме расширенных прав доступа к файлу, которые могут быть назначены и каталогу, существуют специфические права доступа к каталогу, а именно права доступа по умолчанию. Файлы и подкаталоги, которые будут создаваться в этом каталоге, будут получать такие же расширенные права доступа по умолчанию, которые заданы в расширенных правах доступа к этому каталогу.

Таблица 6.4. Расширенные права доступа к каталогам

d[efault]:u[ser]::permsправа хозяина файла по умолчанию
d[efault]:g[roup]::permsправа группы файла по умолчанию
d[efault]:o[ther]:permsправа остальных пользователей по умолчанию
d[efault]:m[ask]:permsмаска ACL по умолчанию
d[efault]:u[ser]:uid:permsправа доступа по умолчанию для указанного пользователя; в качестве uid можно указать и UID, и имя пользователя
d[efault]:g[roup]:gid:permsправа доступа по умолчанию для указанной группы; в качестве gid можно указать и GID, и имя группы

Устанавливая права доступа по умолчанию для конкретных пользователей и групп, необходимо также установить права доступа по умолчанию для хозяина и группы файла, а также всех остальных, а также маску ACL (эти четыре обязательных записи указаны выше по тексту - первыми в таблице расширенных прав доступа к файлу).

Присвоение расширенных прав доступа осуществляется программой setfacl с ключом -s (set). Без этого ключа расширенные права доступа модифицируются, с ним - устанавливаются в точности такими, как указано в данной команде setfacl.

Например, чтобы установить права на чтение и запись файла project07 для пользователей lena и petr, надлежит выполнить команду

setfacl -m user:lena:rw-,user:petr:rw- project07

Ключ -m служит для добавления прав доступа, а не для их замены. Эффективные (т.е. те, которые в самом деле будут иметь место) права доступа пользователей lena и petr определяются не только их персональными правами доступа к этому файлу, но и маской, которая показывает права доступа по умолчанию. Из персональных прав и маски выбираются наиболее строгие ограничения, поэтому, если в персональных правах доступа или в маске для файла project07 отсутствует право на запись, то ни lena, ни petr не получат реальной возможности изменить файл project07.

Расширенные права доступа не показываются в выводе программы ls, но команда ls -l позволяет установить наличие расширенных прав доступа к файлу или каталогу. Если они назначены, то в первой колонке после стандартных прав доступа владельца, группы файла и остальных будет стоять знак "+" ("плюс"). Узнать, какие именно расширенные права доступа назначены, можно с помощью команды

getfacl имя_файла

Более подробную информацию о ключах setfacl и getfacl следует получить из man.

Помните, что назначение прав доступа с помощью chmod может привести к изменению записей ACL, а изменение маски ACL может повлиять на фактические права доступа к объекту для его владельца, группы и всех остальных пользователей.



Содержание раздела