SliTaz Man Pages

Community Doc Forum Pro Shop Bugs Hg Cook

setacl.

Section: Misc. Reference Manual Pages ()
Updated: MOPS 1.0
Index Return to Main Contents

НАЗВАНИЕ

setacl - Изменяет списки прав доступа к файлам.

СИНТАКСИС

setacl [-bkndtRY5vh] [ [[-s|-m|-x] acl_spec ...] file ... ] ...

setacl [-bkndtRY5vh] [ [[-S|-M|-X] acl_file ...] file ... ] ...

setacl [-t] -B file

ОПИСАНИЕ

Эта утилита изменяет списки прав доступа (ACL) к файлам или директориям. В командной строке за последовательностью команд идет последовательность файлов (за которой, в свою очередь, также может идти последовательность команд и т.д.).

При использовании опций -s, -m и -x должны быть перечислены записи ACL в командной строке. Элементы АCL разделяются одинарными кавычками (`,').

Опции -s и -S устанавливают ACL к файлу или директории. Предыдущий ACL заменяется. Абсолютные элементы ACL воспринимаются как параметры.

Опции -m и -M модифицируют ACL к файлу или директории. Абсолютные, а также относительные элементы ACL воспринимаются как параметры.

Опции -x и -X удаляют элементы из ACL. Только удаляемые элементы без прав доступа воспринимаются как параметры.

При чтении ACL из файла при помощи опций -S, -M и -X команда setacl принимает множество элементов в формате вывода getacl. В строке обычно содержится не больше одного элемента ACL, а всё, что следует за символом `#' - это комментарии.

ОПЦИИ

-b
Удалять все дополнительные элементы ACL. Сохраняются базовые элементы ACL, то есть биты прав доступа к файлу для владельца, группы-владельца и всех остальных.
-k
Удалить ACL по умолчанию. Если такого ACL не существует, то предупреждающее сообщение не выводится.
-n
Не пересчитывать маску эффективных прав. Обычно setacl пересчитывает маску (кроме случая явного задния маски) для того, чтобы включить её в максимальный набор прав доступа элементов, на которые воздействует маска (для всех групп и отдельных пользователей).
-d
Все операции применять к ACL-по умолчанию (для директорий). Обычные элементы ACL используются для установки ACL-по умолчанию. Элементы ACL-по умолчанию игнорируются.
-B
Восстановить резервную копию прав доступа, созданную командой `getacl -R' или ей подобной. Все права доступа дерева директорий восстанавливаются, используя этот механизм. Если вводимые данные содержат элементы для владельца или группы-владельца, и команда setacl выполняется пользователем с именем root, то владелец и группа-владелец всех файлов также восстанавливаются. Эта опция не может использоваться совместно с другими опциями, за исключением опции `-t'.
-t
Режим тестирования. Вместо изменения ACL к каким-либо файлам, результирующие ACL выводятся в формате вывода getacl.
-R
Все операции ко всем файлам и директориям применить рекурсивно. Эта опция не может использоваться совместно с опцией `-B'.
-Y
Следовать символьным ссылкам. Обычно символьные ссылки на директории пропускаются. Эта опция подразумевает опцию `-R' и она не может использоваться совместно с опцией `-B'.
-5
Начать обработку с поддиректорий. Обрабатывать сначала директории, а потом уже их содержимое. Эта опция подразумевает опцию `-R' и она не может использоваться совместно с опцией `-B'.
-v
Вывести версию команды setacl и завершить работу.
-h
Вывести справочную информацию.
--
Конец опций командной строки. Все остальные параметры интерпретируются как имена файлов, даже если они начинаются с тире.
-
Если параметром имени файла является тире, то setacl считывает список файлов из стандартного потока ввода.

ЭЛЕМЕНТЫ ACL

Утилита setacl использует следующие форматы элементов ACL:

[d[efault]:] [u[ser]:]uid [:[+|^]perms]
Права доступа отдельного пользователя. Если не задан uid, то права доступа владельца файла.
[d[efault]:] g[roup]:gid [:[+|^]perms]
Права доступа отдельной группы. Если не задан gid, то права доступа группы-владельца.
[d[efault]:] m[ask]:[+|^] perms
Маска эффективных прав.
[d[efault]:] o[ther]:[+|^] perms
Права доступа всех остальных.

Элемент ACL является абсолютным, если он содержит поле perms, и является относительным, если он включает один из модификаторов `+' или '^'. Абсолютные элементы могут использоваться в операциях установки или модификации ACL. Относительные элементы могут использоваться только в операции модификации ACL. Права доступа для отдельных пользователя, группы, не содержащие никаких полей после значений uid, gid (поле perms при этом отсутствует), используются только для удаления элементов.

Значения uid и gid задаются именем или числом. Поле perms может быть представлено комбинацией символов r, w, x, - или цифр (0-7).

Также с помощью этой утилиты можно установить привилегии на исполняемый файл. Формат команды в этом случае следующий: setacl -m c:Linux_cap:MCBC_cap файл... Например, следующая команда: setacl -m c:0x1:0x2 /tmp/a.out установит на исполняемый файл /tmp/a.out первый бит в векторе Linux-привилегий и второй бит в векторе МСВС-привилегий. Эта возможность используется для отладочных целей и в будущем будет перенесена в другую утилиту. Установка привилегий на исполняемый файл означает, что запущенный процесс будет исполняться с этими привилегиями.

АВТОМАТИЧЕСКИ СОЗДАННЫЕ ПРАВА ДОСТУПА

Изначально файлы и директории содержат только три базовых элемента ACL для владельца, группы-владельца и всех остальных пользователей. Существует ряд правил, которые следует выполнять:
*
Не могут быть удалены сразу три базовых элемента. Должен присутствовать хотя бы один.
*
Если ACL содержит права доступа для отдельного пользователя или группы, то ACL также должен содержать маску эффективных прав.
*
Если ACL содержит какие-либо элементы ACL-по умолчанию, то в последнем должны также присутствовать три базовых элемента (то есть права доступа по умолчанию для владельца, группы-владельца и всех остальных).
*
Если ACL-по умолчанию содержит права доступа для отдельных пользователей или групп, то в ACL также должна присутствовать маска эффективных прав.

Для того, чтобы помочь пользователю выполнять эти правила, setacl создаёт права доступа, используя уже существующие, согласно следующим условиям:

*
Если права доступа для отдельного пользователя или группы добавлены в ACL, а маски прав не существует, то создаётся маска с правами доступа группы-владельца.
*
Если создан элемент ACL по умолчанию, а трёх базовых элемента не было, тогда делается копия трёх базовых элементов и они добавляются в ACL по умолчанию.
*
Если ACL-по умолчанию содержит какие-либо права доступа для конкретных пользователя или группы, и не содержит маску прав доступа по умолчанию, то при создании эта маска будет иметь те же права, что и у группы по умолчанию.

ПРИМЕРЫ

Установить элементы ACL.

setacl -s u::rw,g::r,o:-,g:group1:rw file

Предоставить пользователю дополнительные права на чтение.

setacl -m u:user1:r file

Добавить права на запись к правам пользователя.

setacl -m u:user1:+w file

Отменить права доступа на запись в файл для всех отдельных пользователей и групп с использованием маски эффективных прав.

setacl -m m:rx file

Удалять права доступа для отдельной группы из ACL.

setacl -x g:group file

Копировать ACL из одного файла в другой.

getacl file1 | setacl -S- file2

Копировать обычные ACL в ACL-по умолчанию.

getacl -a dir | setacl -d -M- dir

Копировать дерево директорий; копировать все ACL из одного дерева в другое (используя командную оболочку bash).

cp -r dir1 dir2 && (cd dir1 && getacl -R .) |



    (cd dir2 && setacl -B-)

СМ. ТАКЖЕ

getacl(8), chmod(8), acl(5), acl(2).

Index

НАЗВАНИЕ
СИНТАКСИС
ОПИСАНИЕ
ОПЦИИ
ЭЛЕМЕНТЫ ACL
АВТОМАТИЧЕСКИ СОЗДАННЫЕ ПРАВА ДОСТУПА
ПРИМЕРЫ
СМ. ТАКЖЕ