Два основных формата списков 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]- файл
Определяет значение тип_записи_ACL для тривиальных списков ACL. Описание типов записи ACLприведено в Таблица 8–1.
Определяет значение тип_записи_ACL для явно задаваемого синтаксиса ACL. Для типов записи ACL "пользователь" и "группа" также необходимо указать значения идентификатор_записи_ACL, имя_пользователя или имя_группы Описание типов записи ACL приведено в Таблица 8–1.
Определяет наличие или отсутствие разрешений на доступ. Описание прав доступа списков ACL приведено в Таблица 8–2.
Определяет дополнительный список флагов наследования списков ACL. Описание флагов наследования списков ACL приведено вТаблица 8–3.
Определяет наличие или отсутствие разрешений на доступ.
В следующем примере значение идентификатор_записи_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 |
w |
Разрешение на добавление нового файла в каталог. |
add_subdirectory |
p |
Разрешение на создание подкаталога в каталоге. |
append_data |
p |
Местозаполнитель. В настоящее время не используется. |
delete |
d |
Разрешение на удаление файла. |
delete_child |
D |
Разрешение на удаление файла или каталога внутри каталога. |
выполнить |
x |
Разрешение на выполнение файла или поиска в содержимом каталога. |
list_directory |
r |
Разрешение на перечисление содержимого каталога. |
read_acl |
c |
Разрешение на чтение списка ACL (команда ls). |
read_attributes |
a |
Разрешение для чтения базовых атрибутов файла (отличных от списков ACL). Базовые атрибуты можно рассматривать как атрибуты на уровне команды "stat". Установка этого бита маски доступа означает, что объект может выполнять команды ls((1) и stat(2). |
read_data |
r |
Разрешение для чтения содержимого файла. |
read_xattr |
R |
Разрешение для чтения расширенных атрибутов файла или поиска в каталоге расширенных атрибутов файла. |
synchronize |
s |
Метка-заполнитель. В настоящее время не используется. |
write_xattr |
W |
Разрешение для создания расширенных атрибутов или записи в каталог расширенных атрибутов. Предоставление пользователю этих разрешений означает возможность создания каталога расширенных атрибутов для файла. Разрешениями для атрибутов файла определяется возможность доступа пользователя к атрибуту. |
write_data |
w |
Разрешение для изменения или замены содержимого файла. |
write_attributes |
A |
Разрешение для изменения данных о времени, связанных с файлом или каталогом, на произвольное значение. |
write_acl |
C |
Разрешение для создания или изменения списков ACL с помощью команды chmod. |
write_owner |
o |
Разрешение для изменения владельца или группы владельца файла. Или возможность выполнения для данного файла команд chown или chgrp . Разрешение для владения файлом или изменения группы владельца файла на группу, в состав которой входит пользователь. Для изменения владельца или группы владельца файла на произвольного пользователя или группу необходимо право PRIV_FILE_CHOWN. |