Работа со списками контроля доступа

После того как в ядре включена поддержка списков контроля доступа и установлены соответствующие утилиты, можно воспользоваться командами getfacl и setf acl для создания и просмотра списков. Рассмотрим ряд примеров.

С помощью команды getfacl можно просмотреть сиисок контроля доступа, связанный с файлом или каталогом. В листинге 4.8 проверяется файл test, расположенный в каталоге /data (строки листинга пронумерованы для наглядности). Ему назначен стандартный список. В строке 3 отображается полное имя файла без начального символа /. В строках 4 и 5 показано имя владельца и группы соответственно. Строки 68 демонстрируют права доступа к файлу. Обратите внимание на то, что триплет other равен

, т.е. только суперпользователь имеет доступ к файлу. В стандартном списке контроля

Мини-картинка

доступа попросту повторяется информация, которая отображается командой Is 1.

Листинг 4.8. Стандартный сиисок контроля доступа к файлу

1. getfacl /data/test

2. getfacl: Removing leading '/' from absolute path names

3. file: data/test

4. owner: root

5. group: root

6. user::rw7. group::r—

8. other::

9. 10.

Команда setfacl позволяет добавлять записи в список контроля доступа конкретного файла или каталога. Каждому пользователю или группе в списке предоставляется отдельный набор привилегий: на чтение, запись и выполнение (rwx или эквивалентное восьмеричное число). В листинге 4.9 показано, как предоставить пользователю j ое право чтения файла. Команда setfacl m дополнительно назначает атрибут mask . В строке 8 показана запись списка, соответствующая пользователю joe. Режим г — (только чтение) эквивалентен коду 4. Теперь пользователь j ое может читать файл, даже не являясь членом группы root или суперпользователем. То же самое можно сделать для целой группы пользователей.

Листинг 4.9. Включение пользователя в список контроля доступа

1. setfacl ш user:joe:4,mask::4 /data/test

2. getfacl /data/test

3. getfacl: Removing leading '/' from absolute path names

4. file: data/test

5. owner: root

6. group: root

7. user::rw8. user:joe:r—

9. group::r—

10. mask::r—

11. other::

12.

Теперь необходимо разобраться с тем, что же такое атрибут mask. Ему соответствует такой же набор привилегий, как пользователю или группе. Когда пользователь пытается получить доступ к файлу, значение mask побитово умножается на код прав доступа, назначенный этому пользователю или его группе, формируя реальный набор привилегий. Другими словами, значение mask отражает максимально возможные привилегии для пользователя. В листинге 4.9 значение mask не уменьшало права пользователя joe. Но что произойдет в противном случае Ответ приведен в листинге 4.10. Заметьте: эффективные (реальные) права доступа, предоставляемые пользователю joe и группе staff, разрешают только чтение, несмотря на то что команда setfacl явно разрешает чтение/запись.

Листинг 4.10. Влияние значения mask

setfacl m user:joe:6,group:staff:6,mask::4 /data/test

getfacl /data/test

getfacl: Removing leading '/' from absolute path names

file: data/test

owner: root

group: root user::rwuser:

j oe:rweffective: r— group::r—

group:staff:rweffective:r— mask::r— other::r—

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


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок