pkg install samba44 echo "ntpd_enable=YES" >> /etc/rc.conf
Добавляем запись о контроллере домена в /etc/ntp.conf.
service ntpd restart
Заполняем /etc/krb5.conf. Важно, чтобы default_realm был прописан большими буквами. Иначе будет kinit: Password incorrect:
[libdefaults] default_realm = TEST.LOCAL dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = yes
Заполняем /usr/local/etc/smb4.conf. Тут тоже важно, чтобы realm и workgroup были прописан большими буквами.:
[global] workgroup = TEST security = ads realm = TEST.LOCAL encrypt passwords = yes idmap config * : backend = tdb idmap config * : range = 100000-299999 idmap config TEST : backend = rid idmap config TEST : range = 10000-99999 winbind separator = + winbind enum users = yes winbind enum groups = yes winbind use default domain = yes winbind refresh tickets = yes template shell = /bin/tcsh template homedir = /home/%D_%U
Прописываем winbind в /etc/nsswitch.conf. Заменяем строки group: compat и passwd: compat на group: files winbind и passwd: files winbind соответственно.
sed -i -e 's/group: compat/group: files winbind/' /etc/nsswitch.conf sed -i -e 's/passwd: compat/passwd: files winbind/' /etc/nsswitch.conf
Включаем и запускаем сервисы:
echo "samba_server_enable=YES" >> /etc/rc.conf echo "winbindd_enable=YES" >> /etc/rc.conf service samba_server restart
Получаем тикет kerberos:
kinit domain_admin_login
Проверяем что тикет есть:
klist
Вводим систему в домен:
net ads join -U domain_admin_login
Проверяем соединение с доменом:
net ads testjoin
Проверяем. Получаем список пользователей и груп домена:
wbinfo -u wbinfo -g getent passwd getent group
Если команды wbinfo не выдает ничего, то это значит что не запущен winbindd или некорректно составлен /usr/local/etc/smb4.conf. Если команды getent показывают только локальных пользователей и группы, хотя wbinfo показывает доменных пользователей, то это значит что в /etc/nsswitch.conf не поправлены строки passwd: и group:.
Дальше нужно включить локальный вход для доменных пользователей. Для этого нужно отредактировать файлы в /etc/pam.d/. Для локального входа - /etc/pam.d/login, для входа по ssh - /etc/pam.d/sshd, для входа в kde - /usr/local/etc/pam.d/kde Чтобы при входе создавались хомдиры нужно установить:
pkg install pam_mkhomedir
Затем прописываем
session required /usr/local/lib/pam_mkhomedir.so mode=0700
Несколько слов о template homedir в . Когда пользователи создаются с помощью adduser - домашние директории создаются в момент создания учетной записи, однако в случае входа доменого пользователя его домашней директории, скорее всего. не существует. Для автоматического создания директории нужно установить pam_mkhomedir и прописать нужных файлах в директории /etc/pam.d/ строку запуска pam_mkhomedir.so. Но тут есть нюанс. По умолчанию, template для homedir имеет значение /home/%D/%U, и модуль исправно выполняет mkdir /home/DOMAIN/USER, однако если директории /home/DOMAIN не существет, то папка /home/DOMAIN/USER не создастся. Поэтому нужно либо заменять /home/%D/%U на что-то другое - типа /home/%D_%U, либо создавать директорию /home/DOMAIN/ вручную.
Для того, чтобы пользователи могли локально логиниться в консоль редактируем /etc/pam.d/login. В нем в секцию auth первой строкой дописываем:
auth sufficient pam_winbind.so
А в секцию account первой строкой дописываем:
account sufficient pam_winbind.so
/usr/local/etc/pam.d/kde
Первый варивант: Можно установить sudo
samba# cd /usr/ports/security/sudo samba# make install clean
далее правим файл /usr/local/etc/sudoers добавив в него вот такую строку
user ALL=(ALL) NOPASSWD: ALL
Создаем группу в АД и включаем туда тех, кому нужно дать права рута на фри после чего правим файлик, где заменяем следующие строки
samba# ee/etc/pam.d/su # auth auth sufficient pam_rootok.so no_warn auth sufficient pam_self.so no_warn
#auth requisite pam_group.so no_warn group=wheel root_only fail_safe #заменяем группу wheel на группу с АД, юзерам которой разрешен вход под рутом auth requisite pam_group.so no_warn group=freeadmin root_only fail_safe