: | : |
‹ | › | |||||
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
2017-11-13 17:28:20 20121 1
Настройка прав доступа ACL
Для создания прав доступа к файлам Samba ресурса сервера используйте ACL (Access Control List — список контроля доступа). При помощи ACL вы можете установить доступ к файлам определенным группам, либо конечным пользователям.
Новый ресурс
Для примера допустим у вас в системе есть две группы admins и managers, а также два пользователя alexei и petr.
Создадим директорию Managers для доступа на чтение и запись пользователям, входящим в группу managers.
mkdir -m 700 Managers
setfacl -m d:g:managers:rwx,g:managers:rwx Managers
Первая команда создаст директорию с правами чтения выполнения и изменения содержимого для пользователя root.
Второй командой мы установим те же права для пользователей группы managers.
Файлы и директории, создаваемые пользователями этой группы, либо root-ом, будут наследовать атрибуты доступа.
Просмотр прав доступа
Увидеть права доступа из консоли можно выполнив команду:
getfacl Managers
Программа выведет следующий текст:
# owner: root # group: root user::rwx group::--- group:managers:rwx mask::rwx other::--- default:user::rwx default:group::--- default:group:managers:rwx default:mask::rwx default:other::---
Управление доступом
Для управлением доступом используется команда setfacl.
Для модификации или добавления правила используется параметр -m.
-m user:[пользователь]:права[,user:пользователь:права]
-m group:[группа]:права[,group:группа:права]
Если пользователь пропущен, то права назначаются владельцу файла.
Если группа пропущена, то права назначаются группе-владельцу файла.
Добавить право на чтение/запись файла secretinfo пользователям alexei и petr:
setfacl -m user:alexei:rw,u:petr:rw secretinfo
Права по умолчанию
Для директорий можно указать ACL права, которые будут автоматически добавляться для файлов и директорий, создаваемых в ней.
Для этого используется идентификатор default или параметр -d. На саму директорию права указанные в default не распространяются.
Для файлов и директорий, создаваемых в директории managerdata, добавить право чтение/записи для пользователя petr.
setfacl -m default:user:iivanov:rw managerdata
Рекурсивная установка прав
Для установки прав для всех файлов и директорий внутри директории используется параметр -R.
Так как для того, чтобы читать файл необходимы права на чтение r, а для того чтобы читать директорию необходимы права на чтение и выполнение rx, то можно при указании прав вместо х указывать X.
Флаг X устанавливает права на выполнение только для директорий и файлов, которые уже имеют право на выполнение.
Флаг X вычисляется на момент запуска setfacl, поэтому в default правилах она интерпретируется как x.
Разрешить пользователю alexei читать все файлы и просматривать директории в folder.
setfacl -R -m d:u:alexei:rwx,u:apetrov:rwX folder
или
setfacl -R -m d:u:alexei:rw,u:apetrov:rwX folder
Обе команды имеют недостаток, который проявляется при создании новых файлов и директорий.
Разница в том, что в первом случае пользователь alexei получит право на выполнение всех новых файлов создаваемых в folder и вложенных директориях,
а во втором случае пользователь не сможет просматривать новые директории.
Удаление прав
Удалить права доступа к файлу secretfile для пользователя petr.
setfacl -x u:petr secretfile
Удалить права доступа ко всем файлам и директориям внутри folder для пользователя alexei.
setfacl -R -x u:alexei folder
Очистка правил
Для удаления всех ACL правил используется опция -b. Ее также можно использовать совместно с -m, для того, чтобы заместить права.
Удалить все ACL правила и разрешить пользователю petr читать secretfile.
setfacl -b -m u:petr:r secretfile
Эффективная маска
Эффективная маска используется для ограничения определенного действия для всех пользователей и групп описанных в ACL. То есть можно например запретить всем писать в файл установив эффективную маску r-x.
setfacl -m m::rx filename
Иногда эффективная маска вычисляется автоматически (например при действии chmod, а также при создании файла, так как применяется права umask). Для отмены маски ее следует установить в значение rwx.
Порядок определения доступа к файлу
Может ли пользователь выполнить действие над файлом или директорией определяются следующим образом.
- Используются права владельца, если пользователь им является.
- Используются права, указанные конкретно для этого пользователя.
- Если действие разрешено хотя бы для одной из группы в которую входит пользователь.
- Если пользователь не входит ни в одну группу описанную в ACL, то используются права для other.
Введите ответ:
+
=
seitenshi
2023-03-16 01:29:00
nano /etc/fstab //srv.int.demo.wsr/smb /opt/share cifs user,rw,_netdev,credentials=/root/.smbclient 0 0 mkdir /opt/share mount -a