Списки управления доступом

Глава 14. Списки управления доступом

С файлами и каталогами связаны наборы разрешений для владельца файла, группы, связанной с файлом и всеми остальными пользователями системы. Однако эти наборы разрешений имеют ограничения. Например, нельзя настроить разные разрешения для разных пользователей. Поэтому были реализованы Списки управления доступом (Access Control Lists, ACL).

Ядро Red Hat Enterprise Linux 4 обеспечивает поддержку ACL для файловой системы ext3 и экспортируемых файловых систем NFS. Списки ACL также работают в файловых системах ext3, доступных через Samba.

Помимо поддержки в ядре, реализация ACL также требует установки пакета acl. В нём содержатся утилиты для добавления, изменения, удаления и получения данных ACL.

Команды cp и mv копируют и перемещают все списки ACL, связанные с файлами и каталогами.

14.1. Монтирование файловых систем

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

mount -t ext3 -o acl <device-name> <partition>

Например:

mount -t ext3 -o acl /dev/VolGroup00/LogVol02 /work

Если же раздел описан в файле /etc/fstab, в запись этого раздела можно включить параметр acl:

LABEL=/work      /work       ext3    acl        1 2

Если файловая система ext3 сделана доступной через Samba и в ней включена поддержка ACL, Samba распознаёт ACL, так как она скомпилирована с параметром --with-acl-support. Для монтирования раздела Samba и обращения к нему никаких особенных флагов указывать не нужно.

14.1.1. NFS

По умолчанию, если файловая система, экспортируемая NFS-сервером, поддерживает ACL и NFS-клиент может прочесть ACL, клиентская система работает с ACL.

Чтобы при настройке сервера отключить поддержку ACL в NFS-ресурсах, включите параметр no_acl в файл /etc/exports. Чтобы отключить поддержку ACL в NFS-ресурсе при монтировании его клиентом, монтируйте его, передав параметр no_acl в командой строке или указав в файле /etc/fstab.