В данной инструкции мы поднимем несложный файловый сервер с доменным разграничением прав.
- Домен: reactorcity.local
- Сервер LFS (1.8.1.6): entnet-181 (будущий сервер LFS)
- Компьютер пользователя (1.8.1.6): entnet-182
- Сервер WFS (Windows): 192.168.31.17 (rc-nas-02)
- Сервер DC (MS Windows Server 2008 R2 - AD): 192.168.31.12 (rc-dc-01)
Машину entnet-182 уже ввел в домен, поэтому вводить я буду сервер LFS. Он свежий, только что установленный.
УСТАНОВКА


Ввод в домен ActiveDirectory (если сервер уже в домене, переходим к пункту №3)
1. Сносим libpam-krb5 чтобы не мешал ввести в домен с помощью sssd
sudo apt purge libpam-krb5 --autoremove
![]()
2. Делаем обновление списка пакетов и ставим astra-ad-sssd-client
sudo apt update && sudo apt install astra-ad-sssd-client

Вводим область домена и контроллер.



Соглашаемся на изменения конфига Y

Сверим часы - как говорится 😄 Ага, у меня расхождение на шесть минут !!! . Давайте поправим.

date

Ставим пакет для синхронизации времени systemd-timesyncd
sudo apt install -y systemd-timesyncd

Удаляем альтернативные пакеты синхронизации времени
sudo apt purge ntp chrony -y
Включаем использование клиента systemd-timesyncd и запускаем соответствующую службу
sudo timedatectl set-ntp true
sudo systemctl start systemd-timesyncd
timedatectl
Снова проверяем часы, ага, бьют.
date

Теперь запустим консольную утилиту настройки сетевого адаптера в псевдографике nmtui (network manager terminal user interface) и пропишем наш контроллер домена в качестве DNS.
sudo nmtui








Перезапускам сетевой адаптер
sudo systemctl restart networking.service NetworkManager
![]()
Вводим в домен
sudo astra-ad-sssd-client -d DOMAIN -u ADMIN
После успешного ввода, перезагружаем

sudo /sbin/reboot
После перезагрузки проверяем наличие машины в домене, выполнив id USER_IN_DOMAIN@DOMAIN

Отлично, машина в домене, переходим к настройке шары.
3. Ставим самбу
apt install samba -y
4. Ставим пакет libpam-winbind
sudo apt install libpam-winbind

5. Делаем на всякий случай бэкап smb.conf
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.back
6. Правим конфиг smb.conf
sudo vim /etc/samba/smb.conf
[ SMB.conf ]
7. После idmap config * : backend = tdb дописываем
store dos attributes = yes
server min protocol = SMB2_02
server max protocol = SMB3
deadtime = 30
log file = /var/log/samba/%m.log
max log size = 1000
smb ports = 445
disable netbios = yes
smb2 max read = 8388608
smb2 max write = 8388608
а так же удаляем server role = standalone server - если есть.


По поводу log file. По умолчанию log level = 0
| Уровень | Название (условное) | Что логируется |
| 0 | Ошибки и предупреждения | Только критические ошибки, проблемы с подключением, отказы в доступе, сбои аутентификации. Успешные операции - НЕ логируются |
| 1 | Информационный | Подключения/отключения клиентов, открытие шар, общие события. Подходит для мониторинга активности |
| 2 | Подробный (debug) | Операции с файлами (open, read, write), ACL-проверки, обмен пакетами между клиентом и сервером |
| 3+ | Отладка (очень подробно) | Внутренние структуры, детали протокола, сетевые пакеты, трассировка вызовов. Только для разработчиков или глубокой диагностики. |
log level = 0
- Ошибки аутентификации (неверный пароль, учетка заблокирована)
- Отказы в доступе (ACL deny, нет прав)
- Проблемы с подключением к DC
- Сбои при работе с файлами ("файл заблокирован", "нет места на диске")
- НЕ логируется: успешный вход, открытие файла, чтение/запись
log level = 1
- Все из уровня 0+
- Успешное подключение клиента ([2025/12/02 10:05:22] smbd: connect from workstation (IP))
- Отключение клиента
- Монтирование шары
log level = 2
- Все из уровня 1+
- Каждое открытие/закрытие файла
- Попытки чтения/записи
- Проверки ACL и прав доступа
- Действия с каталогами (создание, удаление)
Рекомендую уровень - 0 или 1 (но с logrotate + мониторинг диска), в редких исключениях 2 (но с небольшим количеством пользователей)
При выборе уровня не 0, то нужно в smb.conf еще дописать log level = 1
8. Удаляем секции [homes], [printers], [print$] и на их место вставляем *(Незабываем менять path (если отличается от моего) и менять comment на свой!):
[share]
path = /share
comment = entnet-181
browseable = yes
read only = no
guest ok = no
guest only = no
acl check permissions = yes
hide unreadable = yes
create mask = 0660
directory mask = 0770


9. После стартуем службу winbind
sudo systemctl start winbind
10. Добавляем в автозагрузку
sudo systemctl enable winbind
11. Проверяем статусы служб (должно быть все зеленое)
sudo systemctl status smbd sudo systemctl status winbind
Создаем иерархию
12. Переходим в root
sudo -i
![]()
12.1 Создаем директорию для шары
mkdir /share
13. Назначаем права
chmod 755 /share
chown root:root /share
14. Перезапускаем службы
systemctl restart smbd nmbd
15.1 Так как мы выключили NetBIOS в smb.conf, можно отключить службу nmbd
systemctl disable --now nmbd

15.2 Включив логирование, нужно настроить logrotate для /var/log/samba/
vim /etc/logrotate.d/samba
/var/log/samba/*.log {
weekly
missingok
rotate 4
compress
delaycompress
notifempty
create 644 root root
}

16. Создаем структуру каталогов *(Меняем на свою структуру, здесь чисто для примера указано)
mkdir -p "1.ИТ/0.Внутренние_документы" "1.ИТ/1.Обмен"
И так далее

17. Права на каталоги 0.Внутренние_документы и 1.Обмен
Данные права:
- 0.Внутренние_документы
- Видят и имеют полный доступ только члены группы АД "ГРУППА_В_АД".
- Все остальные (включая "Пользователи домена") - не видят и не имеют доступа.
- Нельзя удалять, переименовывать или создавать рядом с этой папкой - права на родительский каталог 755.
- 1.Обмен
- Видят все доменные пользователи, но:
-
- Члены группы "ГРУППА_В_АД" - полный доступ (чтение, запись, удаление).
- Все остальные - только чтение (открытие файлов), редактирование, создание и удаление - запрещены.
- Новые файлы и папки внутри 1.Обмен автоматически наследуют эти правила.
# Права для "0.Внутренние документы" *(замените "ГРУППА_В_АД" на реальную группу)
chown root:ГРУППА_В_АД 0.Внутренние_документы/
chmod 2770 0.Внутренние_документы/
setfacl -m g:ГРУППА_В_АД:rwx,o::--- 0.Внутренние_документы/
setfacl -d -m g:ГРУППА_В_АД:rwx,o::--- 0.Внутренние_документы/

# Права для "1.Обмен" *(замените "ГРУППА_В_АД" на реальную группу)
chown root:ГРУППА_В_АД 1.Обмен/
chmod 2775 1.Обмен/
setfacl -m g:ГРУППА_В_АД:rwx,g:"пользователи домена":r-x,o::--- 1.Обмен/
setfacl -d -m g:ГРУППА_В_АД:rwx,g:"пользователи домена":r-x,o::--- 1.Обмен/
и так для каждого каталога (1.ИТ,2.Бухгалтерия...).


18. С помощью команды getfacl проверим права, должны быть как на скриншоте ниже
0.Внутренние_документы

1.Обмен

19. Накинем нашему тестовому пользователю ivanovii группу gr_it. Проверяем


Готово, наш сервер создан
Настройка на АРМ пользователя (entnet-182)
1. Ставим пакеты для PAM_MOUNT
sudo apt install -y libpam-mount cifs-utils
2. Заменяем все содержимое pam_mount.conf.xml
sudo vim /etc/security/pam_mount.conf.xml


На конфиг если у вас две шары (винда и линукс) [Связка Windows/Linux FileShare]:
*(Незабываем менять server на свой (только DomainName srv-01 итд, никаких IP, а так же прописываем path (ваша шара, если делали по дефолту, то share пишем либо свое название, которое прописали в smb.conf)
<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"><!--See pam_mount.conf(5) for a description.--><!--ВНИМАНИЕ! ВАЖНО! Требуется: DFS с FQDN (не IP!) для корректной работы Kerberos для сетевых шар WINDOWS с DFS --><pam_mount><debug enable="0"/><mntoptions allow="*"/><mntoptions require="nosuid,nodev,uid,gid,dir_mode,cruid" /><logout wait="0" hup="0" term="0" kill="0" /><cifsmount>mount -t cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS),cruid=%(USERUID)</cifsmount><mkmountpoint enable="1" remove="true" /><volumeuser="*"fstype="cifs"server="ВАШ_СЕРВЕР_DN_WINDOWS"path="ПУТЬ_К_ШАРЕ"nssd_lookup="0"mountpoint="/home/%(DOMAIN_USER)/[WFS - WINDOWS] - ОБМЕН/"options="sec=krb5i,vers=2.1,cruid=%(USERUID),uid=%(USERUID),gid=%(USERGID),nobrl,iocharset=utf8,user=%(USER)"/><volumeuser="*"fstype="cifs"server="ВАШ_СЕРВЕР_DN_LINUX"path="ПУТЬ_К_ШАРЕ"mountpoint="/home/%(DOMAIN_USER)/[LFS - LINUX] - ОБМЕН/"options="sec=krb5,vers=3.0,nosetuids,noperm,user=%(USER)"/></pam_mount>
Готово, после перезагрузки появится в домашней у любого пользователя каталог LFS и WFS с сетевым диском share который мы создали на lfs.
На конфиг если у вас только линукс шара [Linux FileShare]:
*(Незабываем менять server на свой (только DomainName srv-01 итд, никаких IP, а так же прописываем path (ваша шара, если делали по дефолту, то share пишем либо свое название, которое прописали в smb.conf)
<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"><pam_mount><!-- Общие параметры --><debug enable="0" /><luserconf name=".pam_mount.conf.xml" /><mntoptions allow="*"/><mntoptions require="sec=krb5,vers=3.0" /><logout wait="0" hup="0" term="0" kill="0" /><cifsmount>mount -t cifs //%(SERVER)/%(VOLUME) %(MNTPT) -o %(OPTIONS),cruid=%(USERUID)</cifsmount><!-- Пример монтирования общей шары в домашнюю папку --><volumeuser="*"fstype="cifs"server="ВАШ_СЕРВЕР_LINUX_DN"path="/ПУТЬ_К_ШАРЕ"mountpoint="/home/%(DOMAIN_USER)/LFS-Обмен/"options="sec=krb5,vers=3.0,nosetuids,noperm"/></pam_mount>
Готово, вот мы и импортозаместили забугорский windows :D
Здесь я чисто покажу результат нашей работы.
Заходим доменным пользователем ivanovii. Ему мы накинули группу gr_it, он может все делать только с 1.ИТ, в других только смотреть 1.Обмен.




Видим, что в 2.Бухгалтерия у нас нет полномочий, только просмотр.

Аналогично и в других директориях


Попробуем создать в своем отделе "ИТ", во внутренних документах - папку и текстовый файл.


Скопируем папку и файл из 0.Внутренние_документы в 1.Обмен

Попробуем скопировать аналогично в 1.Обмен 2.Бухгалтерия

Получили ошибку, все правильно. "Не туда ты залетел, сынок."

Так же я не могу создать новую папку у бухглатерии

Не могу и переименовать


Не могу создать и в корне отделов - новую папку.

Не могу сделать и со своим отделом никаких лишних операций. То есть нашу иерархию ломать - нельзя!
Снова пробуем манипуляцию в своем отделе, но с файлами.


Теперь посмотрим, как Windows примонтирует нашу LFS шару.

Глянем, как он видит права на папки.



А так же, как этим же ivanovii видим и работаем на windows.

Внесем в наш файл немного текста и сохраним в 1.Обмен


Теперь давайте зайдем нашей - главной бухгалтершой pechkinali с группой gr_buh



Видим, что Лариска наша, не имеет доступ в ИТ, так как она не вкатилась в ИТ

Но в своей отделе, она местный босс

Вернемся в ИТ и посмотрим файл для общего доступа.

Попробуем внести корректировки в файл и сохранить

Получили ошибку, наши разграничения работают.
Теперь давайте протестируем третим пользователем dorohoven с правами gr_it, gr_buh, gr_kadr, gr_bezop - да, тут лучше использовать одну группу и накидать ее на каждую папку отдела, чем добавлять каждую группу всех отделов, но в качестве тестирования можно. Допустим наша служба безопасности должна следить за всеми и у них должен быть полный доступ ко всем отделам. Давайте посмотрим, как это будет выглядеть.







Как мы видим, наш Евгений Николаевич имеет полный доступ ко всем отделам.
Теперь давайте протестируем второй pam_mount конфиг связки (Windows Share + Linux Share)


Видим, что появилось две папки ([LFS - Linux] - Обмен и [WFS - Windows] - Обмен). Видим так же LFS-Обмен - но она пустая, осталась от старого монтирования конфига pam_mount LFS.

LFS примонтировался успешно

Как и Windows.
На этом наш обзор завершен. Если вы досмотрели до сюда, то большое спасибо, что проявили интерес к данной статье! Удачи!

Будьте взаимовежливы и корректны.
Все сообщения проходят премодерацию.
Рекламные сообщения и комментарии с ссылками, не несущими смысловую нагрузку по тематике материала будут удаляться.