: :

ПнВтСрЧтПтСбВс

2017-11-13 17:28:20 7830 0

Настройка прав доступа 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.

Порядок определения доступа к файлу

Может ли пользователь выполнить действие над файлом или директорией определяются следующим образом.

  1. Используются права владельца, если пользователь им является.
  2. Используются права, указанные конкретно для этого пользователя.
  3. Если действие разрешено хотя бы для одной из группы в которую входит пользователь.
  4. Если пользователь не входит ни в одну группу описанную в ACL, то используются права для other.






Введите ответ:

+

=