Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
posix_acl:posix_acl [2018-06-21 13:09] GreyWolf [setfacl] |
posix_acl:posix_acl [2018-07-13 16:07] (текущий) GreyWolf [setfacl] |
||
---|---|---|---|
Строка 2: | Строка 2: | ||
Управление списками доступа POSIX ACL (Access Control Lists). | Управление списками доступа POSIX ACL (Access Control Lists). | ||
+ | |||
+ | http://savannah.nongnu.org/projects/acl/ | ||
[[https://wiki.debian.org/Permissions#Access_Control_Lists_in_Linux|Access Control Lists in Linux]] | [[https://wiki.debian.org/Permissions#Access_Control_Lists_in_Linux|Access Control Lists in Linux]] | ||
- | Использование в [[samba:samba#ntfs-acls|Samba]] | + | [[samba:samba#ntfs-acls|Использование в Samba]] |
- | Графический интерфейс: [[Eiciel:Eiciel|Eiciel]] | + | [[Eiciel:Eiciel|Графический интерфейс Eiciel]] |
+ | |||
+ | ====== Порядок определения доступа ====== | ||
+ | |||
+ | Может ли пользователь выполнить действие над файлом или папкой определяются следующим образом: | ||
+ | - Используются права владельца, если пользователь им является. | ||
+ | - Используются права, указанные конкретно для этого пользователя. | ||
+ | - Если действие разрешено хотя бы для одной из группы в которую входит пользователь. | ||
+ | - Если пользователь не входит ни в одну группу описанную в ACL, то используются права для other. | ||
Строка 18: | Строка 28: | ||
Для того, чтобы проверить поддерживаются ли списки доступа (ACL) нужно выполнить команду: | Для того, чтобы проверить поддерживаются ли списки доступа (ACL) нужно выполнить команду: | ||
<code bash> | <code bash> | ||
- | tune2fs -l /dev/sdaX |grep acl | + | tune2fs -l /dev/sdaX | grep acl |
</code> | </code> | ||
- | ''/dev/sdaX'' имя устройства. | + | где''/dev/sdaX'' это имя устройства. |
+ | |||
+ | Для систем с [[lvm:lvm|LVM]] нужно использовать такой вариант: | ||
+ | <code bash> | ||
+ | tune2fs -l /dev/mapper/vg01-home | grep acl | ||
+ | </code> | ||
+ | где ''/dev/mapper/vg01-home'' это имя логического тома | ||
Если ACL поддерживаются то в выводе команды будет примерно это: | Если ACL поддерживаются то в выводе команды будет примерно это: | ||
Строка 30: | Строка 46: | ||
====== setfacl ====== | ====== setfacl ====== | ||
Установка прав доступа | Установка прав доступа | ||
- | <code> | + | |
- | Usage: setfacl [-bkndRLP] { -m|-M|-x|-X ... } file ... | + | FIXME |
- | -m, --modify=acl modify the current ACL(s) of file(s) | + | |
- | -M, --modify-file=file read ACL entries to modify from file | + | Пример: |
- | -x, --remove=acl remove entries from the ACL(s) of file(s) | + | |
- | -X, --remove-file=file read ACL entries to remove from file | + | Рекурсивно ''-R'' удаляем существующие права ''-b'' и из файла ''-M'' заданного в ''$acl_file'' применяем права и умолчания. |
- | -b, --remove-all remove all extended ACL entries | + | |
- | -k, --remove-default remove the default ACL | + | <code bash acl_share01.sh> |
- | --set=acl set the ACL of file(s), replacing the current ACL | + | #!/bin/bash |
- | --set-file=file read ACL entries to set from file | + | |
- | --mask do recalculate the effective rights mask | + | # Путь |
- | -n, --no-mask don't recalculate the effective rights mask | + | path=/srv/share01 |
- | -d, --default operations apply to the default ACL | + | |
- | -R, --recursive recurse into subdirectories | + | # Права |
- | -L, --logical logical walk, follow symbolic links | + | acl_file=/tmp/tmp.acl |
- | -P, --physical physical walk, do not follow symbolic links | + | cat << 'EOF' |tee $acl_file |
- | --restore=file restore ACLs (inverse of `getfacl -R') | + | user::rwx |
- | --test test mode (ACLs are not modified) | + | group::rwx |
- | -v, --version print version and exit | + | group:Group_F:rwx |
- | -h, --help this help text | + | group:Group_R:r-x |
+ | user:User_F:rwx | ||
+ | user:User_R:r-x | ||
+ | mask::rwx | ||
+ | other::--- | ||
+ | default:group:Group_F:rwx | ||
+ | default:group:Group_R:r-x | ||
+ | default:user:User_F:rwx | ||
+ | default:user:User_R:r-x | ||
+ | default:mask::rwx | ||
+ | default:other::--- | ||
+ | EOF | ||
+ | |||
+ | setfacl -b $path | ||
+ | setfacl -R -b -M $acl_file $path | ||
+ | |||
+ | rm $acl_file | ||
</code> | </code> | ||
- | Пример: | ||
- | <code bash> | ||
- | setfacl -R -r -m g:Group_F:rwx,g:Group_R:rx,default:g:Group_F:rwx,default:g:Group_R:rx,default:other:--- /srv/share01 | ||
- | </code> | ||
- | Рекурсивно ''-R'' удаляем существующие права ''-r'' и добавляем заданные права, устанавливаем умолчания. | ||
- | * ''Group_F'' полные права | ||
- | * ''Group_R'' только чтение | ||
- | * ''other'' = нет доступа | ||
====== getfacl ====== | ====== getfacl ====== | ||
- | |||
FIXME | FIXME | ||
+ | Отображение списка контроля доступа к файлам и папкам. | ||
+ | |||
+ | ===== Сохранение списка прав в файл ===== | ||
+ | |||
+ | <code bash> | ||
+ | getfacl -R ИМЯ_ОБЪЕКТА > ИМЯ_ОБЪЕКТА.acl | ||
+ | </code> | ||
====== Ссылки ====== | ====== Ссылки ====== | ||
- | [[http://www.calculate-linux.org/main/ru/setting_filesystem_acl|Настройка прав доступа ACL]] | ||
- | [[http://help.ubuntu.ru/wiki/access_control_list|Access Control List - списки контроля доступа]] | + | **[[http://help.ubuntu.ru/wiki/access_control_list|Access Control List - списки контроля доступа]]** |
+ | |||
+ | [[http://www.calculate-linux.org/main/ru/setting_filesystem_acl|Настройка прав доступа ACL]] | ||
[[https://help.ubuntu.com/community/FilePermissionsACLs|File Permissions ACLs]] | [[https://help.ubuntu.com/community/FilePermissionsACLs|File Permissions ACLs]] | ||
[[http://rus-linux.net/MyLDP/BOOKS/Linux_Foundations/32/ch32.html|Библиотека сайта rus-linux.net: Фундаментальные основы Linux. Часть VIII. Механизмы безопасной работы с файлами]] | [[http://rus-linux.net/MyLDP/BOOKS/Linux_Foundations/32/ch32.html|Библиотека сайта rus-linux.net: Фундаментальные основы Linux. Часть VIII. Механизмы безопасной работы с файлами]] | ||
+ | |||
+ | [[https://www.computerhope.com/unix/ugetfacl.htm|Linux getfacl command]] | ||
+ | |||
+ | [[https://www.computerhope.com/unix/usetfacl.htm|Linux setfacl command]] | ||
{{tag>Admin Linux Debian}} | {{tag>Admin Linux Debian}} | ||