достаточно убрать "[NOTFOUND=return]". Но использовать zeroconf мы все равно не будем. И еще стоит добавить разрешение имен через WINS. Поэтому преобразуем эту строку в нечто подобное:
hosts: files dns wins mdns4_minimal mdns4
Настройки для WINS будут дальше, в файле /etc/samba/smb.conf.
Настраиваем синхнонизацию времени с контроллером домена.
Редактируем /etc/default/ntpdate и устанавливаем следующие значения
NTPSERVERS="dc.mydomain.local" # откуда брать время, на контроллере домена по умолчанию имеестя NTP-сервер NTPDATE_USE_NTP_CONF=no
Настраиваем доступ по SSH.
Придется установить openssh-server. (Перед установкой пакетов полезно будет настроить убунту на кеш репозитариев, как описано в статье) Стандартный файл настройки нас пока вполне устроит. (потом, наверное, стоит перенастроить на использование ключа или сертификата, либо привязать к AD)
Устанавливаем samba и winbind.
После установки эти два сервиса добавляются в автозагрузку автоматически.
В файле /etc/samba/smb.conf удаляем все и пишем это
[global]
log file = /var/log/samba/log.%m
max log size = 50
hosts allow = 192.168. # подсети, которые разрешаются к использованию
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
wins server = 192.168.3.200 # тут айпишник вашего сервера WINS (у меня то же, что и dc.mydomain.local, но айпишник предпочтительней)
unix charset = UTF8
dos charset = cp866
workgroup = MYDOMAIN
security = ADS
realm = MYDOMAIN.LOCAL
password server = dc.mydomain.local
encrypt passwords = yes
pam password change = yes
# netbios name = firstubuntu
auth methods = winbind guest
lanman auth = no
client lanman auth = no
client ntlmv2 auth = yes
min protocol = NT1
auth methods = winbind
server string = %h server (Samba, Ubuntu)
preferred master = no
dns proxy = no
panic action = /usr/share/samba/panic-action %d
name resolve order = lmhosts host wins bcast
idmap backend = rid:MYDOMAIN.LOCAL=10000-19999
; idmap domains = MYDOMAIN.LOCAL
; idmap config MYDOMAIN.LOCAL:backend = rid
; idmap config MYDOMAIN.LOCAL:range = 10000-19999
idmap uid = 10000-19999
idmap gid = 10000-19999
winbind use default domain = yes
; winbind nested groups = yes
winbind refresh tickets = yes
winbind enum groups = yes
winbind enum users = yes
template shell = /bin/bash
; template homedir = /home/%D/%U
usershare path = /var/lib/samba/usershares/
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
; guest ok = no
; read only = yes
create mask = 0700
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
; browseable = yes
; read only = yes
; guest ok = no
; write list = root, @ntadmin
Вводим компьютер в домен.
net ads join -U Administrator
После ввода команды будет запрошен пароль. Понадобится учетная запись с правом добавления компьютера в домен, например учетка администратора домена MYDOMAIN\Administrator. Перезапустим winbind и samba
/etc/init.d/winbind restart /etc/init.d/samba restart
Снова настраиваем /etc/nsswitch.conf
nsswitch.conf, помимо прочего, задает источники информации об учетных записях. Учетные записи у нас теперь будут на контроллере домена, а источником информации о них будет служить winbind. Редактируем
passwd: files winbind group: files winbind shadow: files winbind
Остальные строки оставим как есть. Теперь, для проверки, подключился ли наш winbind к контроллеру и функционирует ли нормально, запустим
getent passwd
В результате мы должны увидеть наши локальные учетки и длинный список наших доменных учеток. Если не увидели - ищем ошибку в предыдущих пунктах.
Настраиваем PAM.
Будьте осторожны при редактировании конфигурации PAM - есть вероятность лишить себя возможности залогиниться. При редактировании этих файлов рекомендуют держать на всякий случай пару терминалов с залогиненым рутом.
Правим /etc/pam.d/common-auth
auth required pam_env.so auth sufficient pam_unix.so likeauth nullok try_first_pass auth sufficient pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE auth required pam_deny.so
Правим /etc/pam.d/common-account
account sufficient pam_winbind.so account required pam_unix.so
Правим /etc/pam.d/common-session
session optional pam_mkhomedir.so skel=/etc/skel/ umask=0077 session optional pam_ck_connector.so nox11 session required pam_limits.so session required pam_env.so session required pam_unix.so
Возможно, в свежих дистрибутивах понадобится закомментировать pam_ck_connector из-за изменений в consolekit. У меня в свежеобновленной gentoo из-за него отвалилось автомонтирование. Похоже в новых версиях гнома сессия в consolekit создается своими средствами.
Правим /etc/pam.d/common-password
## password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3 password sufficient pam_unix.so try_first_pass use_authtok nullok sha512 shadow ## password sufficient pam_winbind.so use_authtok password sufficient pam_winbind.so password required pam_deny.so
С такой настройкой при аутентификации убунту сначала попробует обратится через winbind к контроллеру домена, потом попытается использовать локальные учетные записи. Отныне при входе в систему мы уже сможем аутентифицироваться под доменной учетной записью. При этом будет создаваться домашний каталог и, на время сессии, сохраняться билет кербероса, дающий нам доступ к сетевым ресурсам.
В консоли проверим, что у нас получилось, сменив текущего пользователя на доменного
su IvanovSV
Если ничего не получилось - ищем ошибки в предыдущих пунктах. Если получилось - то можно перезагружаться и входить в гном сразу под своей юзерской доменной учеткой.
Для того, чтобы добавить доменную учетную запись в локальную группу (например в audio), отредактируйте файл /etc/groups и добавьте в конец строки имя учетной записи напротив нужной группы.
Порядок запуска winbind.
Из-за того что сервис winbind по умолчанию стартует раньше, чем настраивается сеть, первые попытки винбинда связаться с контроллером домена проваливаются и winbind выдерживает долгую паузу перед следующей попыткой. Поэтому пользователь не сможет залогинится сразу же, а только после того, как подождет несколько минут. Исправляем - перенесем запуск winbind в самый конец процесса загрузки. Для этого переименуем символьные ссылки вида /etc/rcX.d/S20winbind в S99winbind, где X - номер ранлевела. Например так
for i in `seq 2 5`; do mv /etc/rc$i.d/S20winbind /etc/rc$i.d/S99winbind; done;
