• ACL_USER_OBJ – режим доступа к файлу пользователя-владельца;
• ACL_GROUP_OBJ – режим доступа к файлу группы-владельца;
• ACL_OTHER – режим доступа к файлу остальных пользователей.
Следующие два компонента устанавливаются для каждого файла в отдельности и могут присутствовать в ACL в нескольких экземплярах:
• ACL_USER – содержит UID и режим доступа к файлу пользователя, которому установлены права, отличные от основных. На каждого пользователя со своими правами на данный файл хранится отдельная запись. Не может существовать более одной записи на одного и того же пользователя;
• ACL_GROUP – то же самое, что и ACLUSER, но для группы пользователей;
• ACL_MASK – маска действующих прав доступа для расширенного режима.
При установке дополнительных прав доступа присваивается значение и элементу ACLMASK.
Каталоги также могут иметь список контроля доступа по умолчанию. В отличие от основного ACL, он действует на создаваемые внутри данного каталога файлы и каталоги. При создании файла внутри такого каталога, файл получает ACL, равный ACL по умолчанию этого каталога.
Установка Linux ACLs
Для использования Linux ACLs необходимо получить на сайте разработчиков собственно пакет Linux ACLs и патчи для ядра операционной системы Linux и некоторых утилит. Само собой, после наложения патчей придется перекомпилировать ядро операционной системы и утилиты.
При подготовке к компиляции ядра операционной системы Linux необходимо выполнить следующие действия:
1. В меню Code Maturity Level Optionsотметить пункт Prompt for development and/or incomplete code/drivers.
2. В меню Filesystemsотметить пункт Extended filesystem attributes (EXPRIMENTAL).
3. Затем отметить два подпункта: Extended user attributesи Access Control Lists.
4. В пункте Second extended fs supportотметить подпункт Extended attributes for ext2 (DANGEROUS).
После этого можно компилировать ядро операционной системы.
После компиляции и установки ядра операционной системы следует переходить к установке утилит управления расширенным доступом к файлам и накладыванию патчей на стандартные утилиты.
Для установки утилит необходимо скомпилировать пакет ACL, который также берется на сайте разработчиков. Процесс компиляции и установки подробно описан в документации, входящей в комплект пакета. На том же сайте берем патчи к стандартным утилитам операционной системы и применяем их по рецепту, приведенному в документации. После этого можно произвести перезагрузку операционной системы.
Установка и изменение прав доступа
Управление списками контроля доступа производится при помощи двух утилит – getfacl и setfacl.
С помощью getfacl можно просмотреть текущие параметры доступа любого файла. Например, при вызове getfacl для домашнего каталога пользователя vasya мы получим следующее:
getfacl /home/vasya
file: home/vasya
owner: vasya
group: users
user::rwx
group::–
other:–
Как можно видеть, каталог /home/vasya принадлежит пользователю vasya, группе users и значение прав доступа к каталогу – 0700. Каталог имеет только основные параметры доступа, поскольку изначально дополнительные права не устанавливаются. Дополнительные права доступа к файлу устанавливаются и изменяются при помощи утилиты setfacl. Для этого используется следующий формат вызова:
setfacl – опции ACL_структура, ACL_структура,…,ACL_структура имя_файла имя_файла …
ACL-структура представляет собой одну из следующих конструкций:
• [d: ] [и: ] [пользователь] [: [+|^] режимы_доступа] – определяет режим доступа к файлу или каталогу пользователя. Если пользователь не указан, определяет режим доступа пользователя-владельца;
• [d: ] g: [группа] [: [+|^] режимы_доступа] – то же, что и предыдущая конструкция, но для группы;
• [d: ] m [: [+|^] режимы_доступа] – определяет действующие права доступа;
• [d: ] о [: [+|^] режимы_доступа] – определяет режим доступа для остальных пользователей.
Для установки и изменения ACL используются следующие опции:
• -s – заменяет полностью ACL файла на указанный в командной строке;
• -m – изменяет режимы доступа к файлу (каталогу);
• -х – убирает правила доступа из ACL.
К примеру, вот что мы получим, применив setfacl к каталогу vasya:
setfacl -s u::rwx,g::–,o:–,u:usl:rwx,g:usrs2:rx,u:us2:-/home/vasya getfacl /home/dh
file: home/vasya
owner: vasya
group: users
user::rwx
user: usl:rwx
user: us2:–
group::–
group: usrs2:r-x
mask: rwx
Читать дальше
Конец ознакомительного отрывка
Купить книгу