| |
| qa:nix:acl [2022/05/10 03:12] – создано lxa | qa:nix:acl [2022/05/10 03:18] (текущий) – lxa |
|---|
| ====== setfacl. Назначение, модификация и удаление ACL прав ====== | ====== ACL. Введение ====== |
| |
| ---- | **Access Control List** предоставляет расширенный и более гибкий механизм распределения прав файловых систем. Он предназначен для расширения прав доступа к файлам UNIX. ACL позволяет устанавливать разрешения любым пользователям или группам для различных файловых ресурсов. |
| |
| ===== Man ===== | <WRAP center round info 100%> |
| | Несколько слов о взаимодействии других команд (такие как копирование, перемещение, архивирование и т.п.) с правами ACL. Вот выдержка из статьи: |
| |
| ==== Использование ==== | К сожалению, большинство Unix-утилит все еще не поддерживает ACL. Например, tar не архивирует и не восстанавливает ACL, в FreeBSD NFS также игнорирует их. Ни формат файлов в утилите tar, ни протокол NFS нет ни намека на возможность использования ACL. Тем не менее, архивы полного раздела UFS1, сделанные с помощью tar или dump, восстанавливают каталог .attribute, и утилита dump в FreeBSD модифицирована для «понимания» UFS2 (включающую ACL). Каталог-скелет archivers/star поддерживает ACL. Вы даже можете работать с архивами, созданными в Linux и FreeBSD С помощью star и предохраняющей расширенные атрибуты (включающие и ACL). |
| |
| <code> | Но не все так грустно! Перевод статьи был написан в 2006 году (к сожалению до оригинала я так и не добрался). В другой же статье, более поздней, сказано: |
| setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... | |
| </code> | |
| |
| ==== Параметры ==== | Ядро Red Hat Enterprise Linux 4 обеспечивает поддержку ACL для файловой системы ext3 и экспортируемых файловых систем NFS. Списки ACL также работают в файловых системах ext3, доступных через Samba. … Команды cp и mv копируют и перемещают все списки ACL, связанные с файлами и каталогами. |
| |
| ^ Опции ^ Значение ^ | Хоть большинство стандартных команд, призванных производить операции над файлами, уже поддерживают ACL то, например, команды архивирования tar и dump ACL не архивируют. Для архивации данных с установленными ACL используется программа star. В кратце ее рассмотрим позже. Замечу, что для NFS ACL поддерживаются уже по умолчанию. Вообще, успешное использование ACL зависит от поддержки ACL файловой системой и поддержки ACL операционной системой на клиентской машине. |
| | **%%-m, --modify=acl%%** | Добавить и модифицировать существующие записи ACL | | </WRAP> |
| | **%%-M, --modify-file=file%%** | Добавить и модифицировать существующие записи ACL взятые из указанного файла | | |
| | **%%-x, --remove=acl%%** | Удалить указанные ACL права взятые из указанного файла | | |
| | **%%-X, --remove-file=file%%** | Удалить указанные ACL права | | |
| | **%%-b, --remove-all%%** | Удалить все ACL права с объекта, сохраняя основные права | | |
| | **%%-k, --remove-default%%** | Удалить с объекта ACL по умолчанию. Если таковых на объекте нет, предупреждение об этом выдаваться не будет | | |
| | **%%--set=acl%%** | Установить новые указанные права ACL, удаляя все существующие. Необходимо, чтобы наравне с задаваемыми правилами ACL были также указаны стандартные права Unix, в противном случае будет давать ошибку | | |
| | **%%--set-file=file%%** | Установить новые указанные права ACL, взятые из указанного файла, удаляя все существующие. Необходимо, чтобы наравне с задаваемыми правилами ACL были также указаны стандартные права Unix, в противном случае будет давать ошибку | | |
| | **%%--mask%%** | do recalculate the effective rights mask | | |
| | **%%-n, --no-mask%%** | don't recalculate the effective rights mask | | |
| | **%%-d, --default%%** | Установить ACL по умолчанию на объект | | |
| | **%%-R, --recursive%%** | Рекурсивное назначение (удаление) прав, тобишь пройтись по всем подкаталогам | | |
| | **%%-L, --logical%%** | logical walk, follow symbolic links | | |
| | **%%-P, --physical%%** | physical walk, do not follow symbolic links | | |
| | **%%--restore=file%%** | Восстанавить ACL права на объекты из ранее созданного файла с правами | | |
| | **%%--test%%** | test mode (ACLs are not modified) | | |
| | **%%-v, --version%%** | Вывод версии | | |
| | **%%-h, --help%%** | Вывод справки | | |
| |
| ---- | Чтобы посмотреть, установлены ли ACL на объектах, достаточно воспользоваться командой ls -l: |
| |
| ===== Формирование списка правил ===== | <WRAP center round info 100%> |
| | Символ "+" в конце списка стандартных прав сообщает о наличии установленных прав ACL |
| | </WRAP> |
| |
| ^ Синтаксис ^ Описание ^ Пример ^ | |
| | <code>u:<uid>:<perms>*</code> | Назначает ACL для доступа заданному пользователю. Здесь можно указать имя или UID пользователя. Это может быть любой пользователь, допустимый в данной системе. | <code>setfacl -m u:allexserv:rw myfile.odt</code> - назначает пользователю allexserv права на чтение и запись. | | |
| | <code>%g:<gid>:<perms>*</code> | Назначает ACL для доступа заданной группе. Здесь можно указать имя или GID группы. Это может быть любая группа, допустимая в данной системе. | <code>setfacl -m g:children:r myfile.odt</code> - назначает группе children права на чтение. | | |
| | <code>m:<perms>*</code> | Назначает маску эффективных прав. |<code>setfacl -m m:rx myfile.odt</code> - устанавливает фактические максимальные права на чтение и выполнение.| | |
| | <code>o:<perms>*</code> | Назначает ACL для доступа пользователям, не включённым в группу файла. Это пользователь «все остальные», как в стандартных правах Unix. | <code>setfacl -m o: myfile.odt</code> - убирает все права (отсутствие прав). | | |
| |
| | <code> |
| | root@sytserver:/media/Work/test# ls -l |
| | итого 28 |
| | drwxrwxrwt 2 root root 4096 2009-07-24 21:20 allex |
| | -rwxr-x---+ 1 root root 19 2009-07-25 14:45 qwert |
| | </code> |
| |
| ---- | ---- |
| |
| | ===== Источник ===== |
| | [[http://help.ubuntu.ru/wiki/access_control_list|help.ubuntu.ru]] |
| | |