Дополнительные возможности
Кроме основных опций запуска обе команды имеют большое количество дополнительных. Полный
формат запуска getfacl такой:
getfacl [-adRLPvh] файл ...
getfacl [-adRLPvh] -
В первом случае имена файлов задаются в командной строке, во втором берутся из стандартного ввода.
ls -1 /home | getfacl -
Вывод:
# file: dh/
# owner: dh
# group: root
user::rwx
group::rwx
mask:rwx
other:---
default:user::rwx
default:group::---
default:other:---
# file: ftp/
# owner: root
# group: root
user::rwx
group::r-x
other:r-x
# file: user1/
# owner: user1
# group: users
user::rwx
user:dh:r-x
user:user2:rwx
group::---
mask:rwx
other:---
# file: user2/
# owner: user2
# group: users
user::rwx
group::---
other:---
Опции:
- -a
--access
Вывод ACL без Default ACL.
- -d
--default
Вывод только Default ACL.
- --omit-header
Не выводить заголовок с комментариями (первые три строки вывода).
- --all-effective
Выводить комментарии с действующими правами доступа для каждого пользователя, даже если они совпадают
с заданными.
- --no-effective
Не выводить комментарии с действующими правами доступа ни для одного пользователя.
- --skip-base
Не выводить данные файлов, у которых установлены только основные права доступа
(ACL_USER, ACL_GROUP и ACL_OTHER).
- -R
--recursive
Делать рекурсивный обход каталога и выводить ACL для каждого файла и каталога.
Можно использовать для создания резервной копии ACL всех файлов каталога.
- --post-order
Делать рекурсивный обход каталога и выводить ACL для каждого файла и каталога в обратном
порядке, т.е. сначала выводятся ACL для файлов в каталоге, а потом для самого каталога.
- -L
--logical
Двигаться по символьным ссылкам на каталоги. При отсутствии данной опции выводятся
только ACL каталога, на который указывает ссылка, и обход внутрь не делается.
- -P
--phisycal
Не двигаться по символьным ссылкам и не показывать ACL каталогов или файлов,
на которые указывает ссылка.
- --tabular
Вывод в альтернативном табличном формате. Первый столбец - название элемента ACL, второй -
имя пользователя или группы, третий - режим доступа, четвертый - Default ACL.
getfacl /home/dh
echo ----+-----
getfacl --tabular /home/dh
Вывод:
# file: home/dh
# owner: dh
# group: root
user::rwx
user:user2:rwx
group::rwx
mask:rwx
other:---
default:user::rwx
default:group::---
default:other:---
----+-----
# file: home/dh
USER dh rwx rwx
user user2 rwx
GROUP root rwx ---
mask rwx
other --- ---
- --absolute-names
Не удалять лидирующий слэш ("/") из имен файлов.
- -v
--version
Вывод номера версии getfacl.
- -h
--help
Вывод подсказки.
- --
Конец опций командной строки. Все данные, следующие за этим, рассматриваются как имена
файлов, даже если они начинаются с "-".
Полный формат запуска setfacl такой:
setfacl [-bkndRLPvh] [ [{-s|-m|-x} ACL_структура ...] файл ... ] ...
setfacl [-bkndRLPvh] [ [{-s|-m|-x} ACL_структура ...] - ]
setfacl [-bkndRLPvh] [ [{-S|-M|-X} ACL_файл ...] файл ... ] ...
setfacl [-bkndRLPvh] [ [{-S|-M|-X} -] файл ]
Как и в случае с getfacl, присутствие "-" в командной строке вместо имени файла указывает
команде брать список файлов со стандартного ввода. Опции:
- -b
--remove-all
Удалить все дополнительные ACL.
- -k
--remove-default
Удалить все Default ACL.
- -n
--no-mask
Не изменять действующие права доступа, даже если они не заданы напрямую.
- --mask
Пересчитать действующие права доступа, даже если они заданы напрямую.
- -d
--default
Все операции производятся над Default ACL.
- --restore
Восстанавливает права доступа из файла, созданного при помощи getfacl -R/
- --test
Режим тестирования. Не изменяет ACL файлов, а только выдает результат.
- -R
--recursive
То же, что и для getfacl. Не работает вместе с --restore.
- --post-order
То же, что и для getfacl. Не работает вместе с --restore.
- -L
--logical
То же, что и для getfacl. Не работает вместе с --restore.
- -P
--phisycal
То же, что и для getfacl. Не работает вместе с --restore.
- -v
--version
Вывод номера версии setfacl.
- -h
--help
Вывод подсказки.
- --
Конец опций командной строки. Все данные, следующие за этим, рассматриваются как имена
файлов, даже если они начинаются с "-".
Существуют также и опции дублирующие -s, -m и -x, но при их
использовании ACL-структуры передаются не в командной строке, а из созданного предварительно файла. Это опции -S,
-M и -X. Для получения данных о правилах доступа из стандартного ввода используются
опции -S-, -M- и -X-. Например, чтоб скопировать права доступа с каталога /home/dh на каталог
/home/user1 надо выполнить следующее:
getfacl /home/dh >/tmp/111
setfacl -S /tmp/111 /home/user1
rm -f /tmp/111
Или так:
getfacl /home/dh | setfacl -S- /home/user1
(c)Ерижоков А.А., 2001.
Использование данного документа разрешено только с согласия автора и с указанием первоисточника:
DH's Linux Site
|