Перейти к содержанию

Использование списков контроля доступа в FreeBSD

Кратко запишу пример настройки и использования списков контроля доступа (ACL), расширяющих возможности дискретной системы управления доступом к файлам.

Создадим учетные записи пользователей, определим их пароли, создадим группу пользователей и включим в нее созданных пользователей:

adduser user1
adduser user2
passwd user1
passwd user2
pw group add users
pw group mod users -m user1,user2

Подключение ACL

Механизм списков контроля доступа расширяет функциональные возможности стандартной модели определения полномочий пользователей и может быть активирован для какой-либо конкретной файловой системы.

В рассматриваемом примере списки контроля доступа нужно включить для файловой системы /data. Можно выполнить это действие однократно, либо настроить систему для постоянного использования. Будем рассматривать второй вариант - смонтируем файловую систему /data с флагом acls, отредактировав соответствующую строку в файле /etc/fstab:

Строка должна принять такой вид:

/dev/ada0p4    /data    ufs    rw,acls    2    2

Здесь /dev/ada0p4 - это том на устройстве, содержащий файловую систему /data (будет отличасться при отличиях в конфигурациях дисков). Для применения сделанных изменений можно перезагрузить операционную систему, или (если это нежелательно) отмонтировать и заново смонтировать файловую систему /data:

umount /data
mount /data

Установка samba

Для простоты, рассматривается установка из репозитория бинарных пакетов.

В рассматриваемом случае наиболее актуальной является версия 413-4.13.7, установим ее:

pkg install samba413-4.13.7

Разрешим запуск/автозапуск сервера:

echo samba_server_enable="YES" >> /etc/rc.conf

Создадим файл конфигурации файлового сервера:

```text title="smb4.conf"> [global] log file = /var/log/samba.log max log size = 500 os level = 255 map to guest = Never [share] comment = Share Name path = /share read only = no create mask 0770 directory mask = 2770

## Добавление пользователей samba

```bash
smbpasswd -a user1
smbpasswd -a user2

Создание директории

Создадим директорию, установим владельца директории - группу users и назначим права:

mkdir /data/share
chgrp users /data/share
chmod 770 /data/share

Добавление ACL

Добавим ACL по-умолчанию на общий запрет:

setfacl -d -m u::,g::,o:: /data/share

Добавим ACL, разрешающий владельцу и группе users доступ:

setfacl -d -m u::rwx,g:users:rwx,o:: /data/share