Для изменения списков ACL файлов ZFS используется команда chmod. В следующей конструкции с командой chmod для изменения списков ACL используется параметр acl-спецификация, определяющий формат ACL. Описание параметра acl-спецификация приведено в разделе Синтаксис для настройки списков ACL.
Добавление записей списков ACL
Добавление записи списков ACL для пользователя
% chmod A+acl-specification filename |
Добавление записи списков ACL по значению индекс-идентификатор
% chmod Aindex-ID+acl-specification filename |
Эта конструкция используется для вставки новой записи списков ACL в место, заданное значением индекса-идентификатора.
Замена записи списков ACL
% chmod A=acl-specification filename |
% chmod Aindex-ID=acl-specification filename |
Удаление записей списков ACL
Удаление записи списков ACL по значению индекс-идентификатор
% chmod Aindex-ID- filename |
Удаление записи списков ACL для пользователя
% chmod A-acl-specification filename |
Удаление всех нетривиальных записей ACE файла
% chmod A- filename |
Для просмотра подробной информации о списках ACL используется команда ls-v. Пример:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Aug 31 11:53 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
Для получения информации о компактном формате списков ACL см. Настройка и просмотр списков ACL файлов ZFS в компактном формате.
В этом разделе приводятся примеры настройки и вывода тривиальных списков ACL.
В следующем примере для файла file.1 используется тривиальный ACL:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Aug 31 11:53 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
В следующем примере группе group@ предоставляются разрешения write_data.
# chmod A2=group@:append_data/execute:deny file.1 # chmod A3=group@:read_data/write_data:allow file.1 # ls -v file.1 -rw-rw-r-- 1 root root 206663 Aug 31 11:53 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:append_data/execute:deny 3:group@:read_data/write_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
В следующем примере для файла file.1 разрешения снова устанавливаются на 644.
# chmod 644 file.1 # ls -v file.1 -rw-r--r-- 1 root root 206663 Aug 31 11:53 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
В этом разделе описываются примеры настройки и отображения нетривиальных списков ACL.
В следующем примере для пользователя gozer добавляются разрешения read_data/execute в отношении каталога test.dir.
# chmod A+user:gozer:read_data/execute:allow test.dir # ls -dv test.dir drwxr-xr-x+ 2 root root 2 Aug 31 12:02 test.dir 0:user:gozer:list_directory/read_data/execute:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующем примере разрешения read_data/executeдля пользователя gozer удаляются.
# chmod A0- test.dir # ls -dv test.dir 0:owner@::deny 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 2:group@:add_file/write_data/add_subdirectory/append_data:deny 3:group@:list_directory/read_data/execute:allow 4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующих примерах демонстрируется связь между настройкой списков ACL и последующим изменением битов разрешений файла или каталога.
В следующем примере для файла file.2используется тривиальный ACL:
# ls -v file.2 -rw-r--r-- 1 root root 2836 Aug 31 12:06 file.2 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
В следующем примере удаляются разрешения списков ACL (allow) для группы everyone@.
# chmod A5- file.2 # ls -v file.2 -rw-r-----+ 1 root root 2836 Aug 31 12:06 file.2 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny |
В приведенных выходных данных биты разрешений файла сбрасываются с 655 до 650. Разрешения на чтение для пользователя everyone@, по сути, удаляются из битов разрешений файла, когда удаляются разрешения списков ACL для пользователя everyone@.
В следующем примере существующий список ACL заменяется разрешениями read_data/write_data для группы everyone@.
# chmod A=everyone@:read_data/write_data:allow file.3 # ls -v file.3 -rw-rw-rw-+ 1 root root 2455 Aug 31 12:08 file.3 0:everyone@:read_data/write_data:allow |
В приведенных выходных данных конструкция chmod, по сути, заменяет существующий список ACL с разрешениями read_data/write_data:allow на чтение/изменение для владельца, группы иeveryone@. В этой модели группа everyone@ охватывает всех пользователей и группы пользователей. Поскольку запись ACL для owner@илиgroup@, переопределяющая разрешения владельца или группы, отсутствует, биты разрешений установлены в 666.
В следующем примере существующий список ACL заменяется разрешениями на чтение для пользователя gozer.
# chmod A=user:gozer:read_data:allow file.3 # ls -v file.3 ----------+ 1 root root 2455 Aug 31 12:08 file.3 0:user:gozer:read_data:allow |
В результате для разрешений на работу с файлом устанавливается значение 000, поскольку для owner@ , group@ и everyone@отсутствуют записи ACL, представляющие собой стандартные компоненты разрешений файла. Владелец файла может решить эту проблему путем переустановки разрешений (и списков ACL) следующим образом:
# chmod 655 file.3 # ls -v file.3 -rw-r-xr-x+ 1 root root 2455 Aug 31 12:08 file.3 0:user:gozer::deny 1:user:gozer:read_data:allow 2:owner@:execute:deny 3:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 4:group@:write_data/append_data:deny 5:group@:read_data/execute:allow 6:everyone@:write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:deny 7:everyone@:read_data/read_xattr/execute/read_attributes/read_acl /synchronize:allow |
Вы можете использовать команду chmod для удаления всех нетривиальных списков ACL файла или каталога.
В следующем примере для test5.dir существует две нетривиальных записи ACE.
# ls -dv test5.dir drwxr-xr-x+ 2 root root 2 Aug 31 12:11 test5.dir 0:user:lp:read_data:file_inherit:deny 1:user:gozer:read_data:file_inherit:deny 2:owner@::deny 3:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 4:group@:add_file/write_data/add_subdirectory/append_data:deny 5:group@:list_directory/read_data/execute:allow 6:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 7:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующем примере нетривиальные ACL для пользователей gozerи lp удаляются. Оставшийся ACL содержит шесть значений по умолчанию для owner@, group@ и everyone@.
# chmod A- test5.dir # ls -dv test5.dir drwxr-xr-x 2 root root 2 Aug 31 12:11 test5.dir 0:owner@::deny 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 2:group@:add_file/write_data/add_subdirectory/append_data:deny 3:group@:list_directory/read_data/execute:allow 4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
Эта процедура позволяет определить наследование списков ACL для файлов и каталогов. По умолчанию наследование списков ACL не осуществляется. При выборе для каталога нетривиального списка ACL этот ACL не наследуется последующими каталогами. Необходимо указать способ наследования списков ACL для файла или каталога.
Кроме того, существуют два свойства списков ACL, которые могут быть заданы в файловых системах на глобальном уровне: aclinheritи aclmode. По умолчанию для aclinherit устанавливается значение restricted , а для aclmode – значение groupmask
Для получения дополнительной информации см.Наследование списков ACL
По умолчанию ACL не наследуются в структуре каталога.
В следующем примере для пользователя gozer в каталоге test.dir используется нетривиальная запись ACE read_data/write_data/execute.
# chmod A+user:gozer:read_data/write_data/execute:allow test.dir # ls -dv test.dir drwxr-xr-x+ 2 root root 2 Aug 31 13:02 test.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
При создании подкаталога test.dir записи ACE для пользователя gozer не наследуется. Пользователь gozer получает доступ к каталогу sub.dir только в том случае, если разрешения sub.dir обеспечивают для него доступ в качестве владельца файла, члена его группы или everyone@.
# mkdir test.dir/sub.dir # ls -dv test.dir/sub.dir drwxr-xr-x 2 root root 2 Aug 31 13:26 test.dir/sub.dir 0:owner@::deny 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 2:group@:add_file/write_data/add_subdirectory/append_data:deny 3:group@:list_directory/read_data/execute:allow 4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В приведенных ниже примерах иллюстрируется применение записи ACE файлов и каталогов при установленном флаге file_inherit.
В следующем примере для пользователя gozer добавляются разрешения read_data/write_data в отношении файлов в каталоге test.dir. Таким образом, этот пользователь получает разрешения на чтение любых новых файлов.
# chmod A+user:gozer:read_data/write_data:file_inherit:allow test2.dir # ls -dv test2.dir drwxr-xr-x+ 2 root root 2 Aug 31 13:26 test2.dir 0:user:gozer:read_data/write_data:file_inherit:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующем примере разрешения пользователя gozer применяются по отношению к новому файлу test2.dir/file.2. Разрешение наследования списков ACL read_data:file_inherit:allow) означает, что пользователь gozer может просматривать содержимое любого нового файла.
# touch test2.dir/file.2 # ls -v test2.dir/file.2 -rw-r--r--+ 1 root root 0 Aug 31 13:27 test2.dir/file.2 0:user:gozer:write_data:deny 1:user:gozer:read_data/write_data:allow 2:owner@:execute:deny 3:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 4:group@:write_data/append_data/execute:deny 5:group@:read_data:allow 6:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
Поскольку для свойства aclmode этого файла задан режим по умолчанию, groupmask, пользователь gozer не обладает разрешением write_data в отношении file.2 , так как это противоречит разрешениям группы в отношении этого файла.
Следует отметить, что разрешение inherit_only, применяемое при установке флагов file_inherit или dir_inherit, позволяет распространить ACL по структуре каталога. Пользователь gozer получает или не получает разрешения everyone@ только в том случае, если он не является владельцем файла или членом группы владельца файла. Пример:
# mkdir test2.dir/subdir.2 # ls -dv test2.dir/subdir.2 drwxr-xr-x+ 2 root root 2 Aug 31 13:28 test2.dir/subdir.2 0:user:gozer:list_directory/read_data/add_file/write_data:file_inherit /inherit_only:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующих примерах демонстрируются ACL файлов и каталогов, которые применяются, если одновременно установлены флаги file_inheritи dir_inherit.
В следующем примере пользователю gozer предоставляются разрешения на чтение, запись и выполнение, которые наследуются новыми файлами и каталогами.
# chmod A+user:gozer:read_data/write_data/execute:file_inherit/dir_inherit:allow test3.dir # ls -dv test3.dir drwxr-xr-x+ 2 root root 2 Aug 31 13:29 test3.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute :file_inherit/dir_inherit:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
# touch test3.dir/file.3 # ls -v test3.dir/file.3 -rw-r--r--+ 1 root root 0 Jun 20 14:42 test3.dir/file.3 0:user:gozer:write_data/execute:deny 1:user:gozer:read_data/write_data/execute:allow 2:owner@:execute:deny 3:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 4:group@:write_data/append_data/execute:deny 5:group@:read_data:allow 6:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
# mkdir test3.dir/subdir.1 # ls -dv test3.dir/subdir.1 drwxr-xr-x+ 2 root root 2 Aug 31 13:32 test3.dir/subdir.1 0:user:gozer:list_directory/read_data/add_file/write_data/execute :file_inherit/dir_inherit/inherit_only:allow 1:user:gozer:add_file/write_data:deny 2:user:gozer:list_directory/read_data/add_file/write_data/execute:allow 3:owner@::deny 4:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 5:group@:add_file/write_data/add_subdirectory/append_data:deny 6:group@:list_directory/read_data/execute:allow 7:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 8:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В этих примерах, поскольку биты разрешений родительского каталога для group@ и everyone@ в этих примерах запрещают запись и выполнение, соответствующие разрешения пользователю gozer не предоставляются. Для свойства aclmode по умолчанию задан режим restricted. Это означает, что разрешения write_data и execute не наследуются.
В следующем примере пользователю gozer предоставляются разрешения на чтение, запись и выполнение, которые наследуются новыми файлами, но не распространяются на последующее содержимое каталога.
# chmod A+user:gozer:read_data/write_data/execute:file_inherit/no_propagate:allow test4.dir # ls -dv test4.dir drwxr-xr-x+ 2 root root 2 Aug 31 13:34 test4.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute :file_inherit/no_propagate:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующем примере при создании нового подкаталога файловые разрешения пользователя gozer read_data/write_data/execute не распространяются на новый каталог sub4.dir.
mkdir test4.dir/sub4.dir # ls -dv test4.dir/sub4.dir drwxr-xr-x 2 root root 2 Aug 31 13:35 test4.dir/sub4.dir 0:owner@::deny 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 2:group@:add_file/write_data/add_subdirectory/append_data:deny 3:group@:list_directory/read_data/execute:allow 4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 5:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующем примере демонстрируется распространение файловых разрешений пользователя gozerread_data/write_data/execute на новый созданный файл.
# touch test4.dir/file.4 # ls -v test4.dir/file.4 -rw-r--r--+ 1 root root 0 Aug 31 13:35 test4.dir/file.4 0:user:gozer:write_data/execute:deny 1:user:gozer:read_data/write_data/execute:allow 2:owner@:execute:deny 3:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 4:group@:write_data/append_data/execute:deny 5:group@:read_data:allow 6:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
При выборе для свойства aclmode в файловой системе tank/cindys режима passthroughпользователь gozer наследует ACL каталога test4.dir в отношении нового файла file.4 следующим образом:
# zfs set aclmode=passthrough tank/cindys # touch test4.dir/file.4 # ls -v test4.dir/file.4 -rw-r--r--+ 1 root root 0 Aug 31 13:39 test4.dir/file.4 0:user:gozer:write_data/execute:deny 1:user:gozer:read_data/write_data/execute:allow 2:owner@:execute:deny 3:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 4:group@:write_data/append_data/execute:deny 5:group@:read_data:allow 6:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 7:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |
Этот результат демонстрирует, что пользователю gozer передается спискам ACL read_data/write_data/execute:allow:file_inherit/dir_inherit, заданный для родительского каталога test4.dir.
Если для свойства aclmode в файловой системе выбран режим discard, то существует вероятность того, что в случае изменения битов разрешений в каталоге записи ACL будут проигнорированы. Пример:
# zfs set aclmode=discard tank/cindys # chmod A+user:gozer:read_data/write_data/execute:dir_inherit:allow test5.dir # ls -dv test5.dir drwxr-xr-x+ 2 root root 2 Aug 31 13:40 test5.dir 0:user:gozer:list_directory/read_data/add_file/write_data/execute :dir_inherit:allow 1:owner@::deny 2:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 3:group@:add_file/write_data/add_subdirectory/append_data:deny 4:group@:list_directory/read_data/execute:allow 5:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 6:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
Если в дальнейшем в отношении каталога будут установлены более строгие разрешения, нетривиальный ACL будет проигнорирован. Пример:
# chmod 744 test5.dir # ls -dv test5.dir drwxr--r-- 2 root root 2 Aug 31 13:40 test5.dir 0:owner@::deny 1:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 2:group@:add_file/write_data/add_subdirectory/append_data/execute:deny 3:group@:list_directory/read_data:allow 4:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /execute/write_attributes/write_acl/write_owner:deny 5:everyone@:list_directory/read_data/read_xattr/read_attributes/read_acl /synchronize:allow |
В следующем примере выполняется настройка двух нетривиальных списков ACL с наследованием файлов. Один ACL предоставляет разрешение read_data, а другой ACL отклоняет разрешение read_data. В этом примере также демонстрируется определение двух записей ACE в одной команде chmod.
# zfs set aclinherit=noallow tank/cindys # chmod A+user:gozer:read_data:file_inherit:deny,user:lp:read_data:file_inherit:allow test6.dir # ls -dv test6.dir drwxr-xr-x+ 2 root root 2 Aug 31 13:43 test6.dir 0:user:gozer:read_data:file_inherit:deny 1:user:lp:read_data:file_inherit:allow 2:owner@::deny 3:owner@:list_directory/read_data/add_file/write_data/add_subdirectory /append_data/write_xattr/execute/write_attributes/write_acl /write_owner:allow 4:group@:add_file/write_data/add_subdirectory/append_data:deny 5:group@:list_directory/read_data/execute:allow 6:everyone@:add_file/write_data/add_subdirectory/append_data/write_xattr /write_attributes/write_acl/write_owner:deny 7:everyone@:list_directory/read_data/read_xattr/execute/read_attributes /read_acl/synchronize:allow |
В следующем примере демонстрируется, что при создании нового файла список ACL, предоставляющий разрешения read_data, игнорируется.
# touch test6.dir/file.6 # ls -v test6.dir/file.6 -rw-r--r-- 1 root root 0 Aug 31 13:44 test6.dir/file.6 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow |