Руководство по администрированию файловых систем ZFS Solaris

Синтаксис для настройки списков ACL

Два основных формата списков ACL описываются следующим образом:

Синтаксис для настройки тривиальных списков ACL

chmod [options] A[index]{+|=}owner@ |group@ |everyone@: разрешения_доступа/...[:флаги_наследования]: deny | allow файл

chmod [options] A-owner@, group@, everyone@:разрешения_доступа /...[:флаги_наследования]:deny | allow файл ...

chmod [options] A[index]- файл

Синтаксис для настройки нетривиальных списков ACL

chmod [options] A[index]{+|=}user|group:name:разрешения_доступа /...[:флаги_наследования]:deny | allow файл

chmod [options] A-user|group:name:разрешения_доступа /...[:флаги_наследования]:deny | allow файл ...

chmod [options] A[index]- файл

owner@, group@, everyone@

Определяет значение тип_записи_ACL для тривиальных списков ACL. Описание типов записи ACLприведено в Таблица 8–1.

пользователь или группа:идентификатор_записи_ACL=имя_пользователя или имя_группы

Определяет значение тип_записи_ACL для явно задаваемого синтаксиса ACL. Для типов записи ACL "пользователь" и "группа" также необходимо указать значения идентификатор_записи_ACL, имя_пользователя или имя_группы Описание типов записи ACL приведено в Таблица 8–1.

разрешения_доступа/.../

Определяет наличие или отсутствие разрешений на доступ. Описание прав доступа списков ACL приведено в Таблица 8–2.

флаги_наследования

Определяет дополнительный список флагов наследования списков ACL. Описание флагов наследования списков ACL приведено вТаблица 8–3.

deny | allow

Определяет наличие или отсутствие разрешений на доступ.

В следующем примере значение идентификатор_записи_ACL не учитывается.


group@:write_data/append_data/execute:deny

Следующий пример включает значение идентификатор_записи_ACL, поскольку в списке ACL задан определенный пользователь (тип_записи_ACL).


0:user:gozer:list_directory/read_data/execute:allow

При отображении записи ACL выглядит следующим образом:


2:group@:write_data/append_data/execute:deny

Обозначение 2 или индекс_идентификатор в данном примере определяет запись ACL в большом списке ACL, который может содержать несколько записей для владельца, определенных пользователей, группы и всех пользователей. Для указания на фрагмент списков ACL, который требуется изменить, можно указать индекс_идентификатор с помощью команды chmod. Например, в командеchmod можно определить индекс 3 как A3 аналогично следующему:


chmod A3=user:venkman:read_acl:allow filename

В следующей таблице описаны типы записей ACL, т. е. представление владельца, группы и других пользователей.

Таблица 8–1 Типы записей ACL

Тип записи ACL 

Описание 

owner@

Определяет права доступа, предоставляемые владельцу объекта. 

group@

Определяет права доступа, предоставляемые группе, владеющей объектом. 

everyone@

Определяет права доступа, предоставляемые любому пользователю или группе, не соответствующим любой другой записи ACL. 

user

При указании имени пользователя определяет права доступа, предоставляемые дополнительному пользователю объекта. Должна включать значение идентификатор_записи_ACL, содержащее имя_пользователя или идентификатор_пользователя. Если это значение не представляет собой действительный числовой идентификатор пользователя (UID) или имя_пользователя, то тип записи ACL считается недопустимым.

group

При указании имени группы определяет права доступа, предоставляемые дополнительной группе пользователя объекта. Должна включать значение идентификатор_записи_ACL, содержащее имя_группы или идентификатор_группы. Если это значение не представляет собой действительный числовой идентификатор группы (GID) или имя_группы, то тип записи ACL считается недопустимым.

Права доступа к спискам ACL описаны в следующей таблице.

Таблица 8–2 Права доступа к спискам ACL

Право доступа 

Сокращенное право доступа 

Описание 

add_file 

Разрешение на добавление нового файла в каталог. 

add_subdirectory 

Разрешение на создание подкаталога в каталоге. 

append_data 

Местозаполнитель. В настоящее время не используется. 

delete 

Разрешение на удаление файла. 

delete_child 

Разрешение на удаление файла или каталога внутри каталога. 

выполнить 

Разрешение на выполнение файла или поиска в содержимом каталога. 

list_directory 

Разрешение на перечисление содержимого каталога. 

read_acl 

Разрешение на чтение списка ACL (команда ls).

read_attributes 

Разрешение для чтения базовых атрибутов файла (отличных от списков ACL). Базовые атрибуты можно рассматривать как атрибуты на уровне команды "stat". Установка этого бита маски доступа означает, что объект может выполнять команды ls((1) и stat(2).

read_data 

Разрешение для чтения содержимого файла. 

read_xattr 

Разрешение для чтения расширенных атрибутов файла или поиска в каталоге расширенных атрибутов файла. 

synchronize 

Метка-заполнитель. В настоящее время не используется. 

write_xattr 

Разрешение для создания расширенных атрибутов или записи в каталог расширенных атрибутов. 

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

write_data 

Разрешение для изменения или замены содержимого файла. 

write_attributes 

Разрешение для изменения данных о времени, связанных с файлом или каталогом, на произвольное значение. 

write_acl 

Разрешение для создания или изменения списков ACL с помощью команды chmod.

write_owner 

Разрешение для изменения владельца или группы владельца файла. Или возможность выполнения для данного файла команд chown или chgrp .

Разрешение для владения файлом или изменения группы владельца файла на группу, в состав которой входит пользователь. Для изменения владельца или группы владельца файла на произвольного пользователя или группу необходимо право PRIV_FILE_CHOWN.