Реализация протокола SMB под линуксом.
apt-get install samba -y
Создание папок, раздача прав
# Сделать системную группу, пользователя в ней и задать ему пароль groupadd writers useradd -G writers writer1 passwd writer1 # Сделать папку share2 и сделать её владельцем writer1 mkdir /mnt/data/share2 chown writer1:user /mnt/data/share2 chmod 770 /mnt/data/share2
[global] # Имя домена или рабочей группы workgroup = WORKGROUP # Отображаемое имя сервера server string = %n Server (Samba, Ubuntu) [Share 1] path = /mnt/data/share comment = Файлопомойка inherit acls = yes inherit owner = yes # полезно для размещения перемещаемых профилей # inherit permissions = yes # наследовать разрешения файловой системы writable = yes valid users = user # если указаны параметры read и write list - не нужен read list = user write list = user
# Проверка конфигурации Samba: testparm # Добавить пользователя системы в Самбу, задать ему пароль: smbpasswd -a user # Перезапуск службы для применения настроек: systemctl restart smbd
# Установка необходимых пакетов apt-get install winbind krb5-user ntp
Область Kerberos - DOMAIN.LOCAL
Серверы Kerberos - DC.DOMAIN.LOCAL
apt-get install libpam-krb5 libpam-winbind libnss-winbind # Поменять имя сервера на нужное echo servername > /etc/hostname # Настроить ntp на синхронизацию с DC nano /etc/ntp.conf systemctl restart ntp
[libdefaults] default_realm = DOMAIN.LOCAL [realms] DOMAIN.LOCAL = { kdc = dc.domain.local admin_server = dc.domain.local } [domain_realm] .domain.local = DOMAIN.LOCAL domain.local = DOMAIN.LOCAL
Запрос билета Kerberos:
kinit domain-admin@DOMAIN.LOCAL # указать любого доменного пользователя klist # проверить список выданных билетов
[global] workgroup = DOMAIN # короткое имя домена realm = DOMAIN.LOCAL security = ADS auth methods = winbind winbind enum users = yes winbind enum groups = yes winbind use default domain = yes winbind separator = / idmap config * : range = 10000-20000 # server role # passdb backend # obey pam restrictions # unix password sync # passwd program # passwd chat # pam password change # map to guest # usershare allow guest # и т. д., можно закомментировать принтеры и проч.
# После сохранения конфигурации выполнить testparm # Ввести машину в домен net ads join -U domain-admin@DOMAIN.LOCAL # Отредактировать конфиг nsswitch (источники учётных записей) nano /etc/nsswitch.conf passwd: files winbind group: files winbind shadow: files winbind # Перезапустить сервер reboot # Проверка связи с доменом wbinfo -u # список пользователей домена wbinfo -g # список групп домена id domain-admin # получить id пользователя getent passwd # выводит /etc/nsswitch.conf, там перечислены пользователи и ID getent group # информация по группам
Раздать права на папки для доменных пользователей
chown domain-admin /mnt/data/share1 # или, как вариант, chown domain-admin:"пользователи домена" /mnt/data/share1 chmod 750 /mnt/data/share1 # дать полные права админу, юзерам - чтение
[share1] path = /mnt/data/share1 comment = Файлопомойка inherit acls = yes writable = yes
http://smb-conf.ru/
Файловый сервер Samba. Часть четвертая: простейшая конфигурация файлового сервера
Файловый сервер Samba. Часть пятая: дополнительные опции файлового сервера
Файловый сервер Samba. Часть шестая: подготовка к работе в домене Windows
Файловый сервер Samba. Часть седьмая: ввод в домен
Файловый сервер Samba. Часть восьмая: chown для пользователей домена