Эти действия опробованы на CentOS 5.5. С небольшими изменениями, учитывающими специфику конкретного дистрибутива, эту инструкцию можно использовать и в других версиях и дистрибутивах Linux.
Опробовано на ubuntu 10.04 desktop. Добавлены соответствующие поправки.
Внимание! Настоятельно рекомендую открыть пару сессий от пользователя "root" до выполнения нижеприведённых действий.
по требованию вводим пароль пользователя admin, который должен существовать в домене.
Правим файл "/etc/samba/smb.conf" так, чтобы было похоже на нижеследующее:
[global]
workgroup = ADDOMAIN
realm = DOMAIN.RU
preferred master = no
security = ADS
encrypt passwords = yes
log level = 3
log file = /var/log/samba/%m
max log size = 50
printcap name = cups
printing = cups
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
winbind nested groups = Yes
winbind refresh tickets = yes
idmap uid = 10000-20000
idmap gid = 10000-20000
template shell = /bin/bash
template homedir = /home/%U
passdb backend = tdbsam
server string = Samba Server Version %v
load printers = yes
cups options = raw
[homes]
comment = Home Directories
valid users = %S
read only = no
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/cups
browseable = no
guest ok = yes
writable = no
printable = yes
опция "template homedir = /home/%U" укажет winbind'у, что домашние каталоги пользователей AD должны быть размещены в /home (например, /home/user1). По умолчанию, домашние каталоги имеют вид/home/<DOMAIN>/<username>.
опция "winbind refresh tickets = yes" указывает на автоматическое обновление тикета в AD. Если обнаружили, что после перезагрузки компьютера идентификатор пользователя меняется, увеличьте нижнее значение "idmap uid" (Замечено на ubuntu).
Выполняем testparm для проверки конфигурации samba. Должны получить примерно следующее:
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_DOMAIN_MEMBER
Press enter to see a dump of your service definitions
Если нет ошибок, стартуем все три сервиса: smbd, nmbd и winbind - например, так:
/etc/init.d/smb start
/etc/init.d/winbind start
или так (в ubuntu):
sudo service smbd restart
sudo service nmbd restart
sudo service winbind restart
Выполняем регистрацию компьютера в AD:
net ads join -U admuser
"admuser" - пользователь в AD с администраторскими полномочиями
Выполняем проверки:
тест соединения с AD:
net ads testjoin
если всё в порядке, вернётся список пользователей AD:
wbinfo -u
если всё в порядке, вернётся список групп AD:
wbinfo -g
Если при вызове "wbinfo" были ошибки, увеличьте верхнюю границу параметра "idmap gid" или "idmap uid", соответственно, и перегрузите winbind.
Правим "/etc/nsswitch.conf" так, чтобы присутствовали следующие значения:
Другие файлы "/etc/pam.d/common-*" трогать не нужно, там уже всё необходимое проставлено.
Открываем ещё одну консоль и пытаемся зайти систему, используя учётные данные AD. Так как в "/etc/pam.d/system-auth" мы прописали "session required pam_mkhomedir.so umask=0022 skel=/etc/skel", при входе пользователю будет автоматически создан локальный домашний каталог.
Убеждаемся, что "smbd", "nmbd" и "winbind" стартуют при запуске системы: