Эти действия опробованы на CentOS 5.5. С небольшими изменениями, учитывающими специфику конкретного дистрибутива, эту инструкцию можно использовать и в других версиях и дистрибутивах Linux.
Опробовано на ubuntu 10.04 desktop. Добавлены соответствующие поправки.
Опробовано на ubuntu 12.04 beta.
Внимание!
Настоятельно рекомендую открыть пару сессий от пользователя "root
" до выполнения нижеприведённых действий.
aptitude install ntp krb5-user libkrb53 krb5-config samba samba-common winbind
/etc/ntp.conf
" добавляем сервер - котроллер домена, с которым будет производиться синхронизация времени:... server adcontroller.domain.ru ...
ntp
":chkconfig --list ntpd
off
", разрешаем запуск:chkconfig ntpd on
ntp
":/etc/init.d/ntpd start
для ubuntu - рестартуем:
service ntp restart
/etc/krb5.conf
" так, чтобы было похоже на нижеследующее:[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = DOMAIN.RU dns_lookup_realm = false dns_lookup_kdc = false [realms] DOMAIN.RU = { kdc = adcontroller.domain.ru:88 admin_server = adcontroller.domain.ru:749 default_domain = domain.ru } [domain_realm] .domain.ru = DOMAIN.RU domain.ru = DOMAIN.RU [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
kinit admin@DOMAIN.RU
по требованию вводим пароль пользователя 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
net ads join -U admuser
admuser
" - пользователь в AD с администраторскими полномочиямиnet ads testjoin
wbinfo -u
wbinfo -g
Если при вызове "wbinfo
" были ошибки, увеличьте верхнюю границу параметра "idmap gid
" или "idmap uid
", соответственно, и перегрузите winbind
.
/etc/nsswitch.conf
" так, чтобы присутствовали следующие значения:passwd: files winbind shadow: files winbind group: files winbind ... hosts: files dns wins ...
/etc/passwd
":getent passwd
/etc/group
":getent group
В начале списка будут представлены локальные пользователи и группы, а далее пользователи и группы из AD.
ls -1 /lib/libnss_wi*
/lib/libnss_winbind.so.2 /lib/libnss_wins.so.2
/etc/pam.d/system-auth
" путём добавления (изменения существующих) в него следущих строк в соответствующие секции:... auth sufficient pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE ... account sufficient pam_succeed_if.so uid < 100 quiet account sufficient pam_winbind.so use_first_pass ... password sufficient pam_winbind.so use_first_pass ... session required pam_mkhomedir.so umask=0022 skel=/etc/skel session required pam_winbind.so use_first_pass ...
должно получиться что-то вроде нижеприведённого:
#%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_unix.so likeauth nullok auth sufficient pam_winbind.so use_first_pass krb5_auth krb5_ccache_type=FILE auth required pam_deny.so account required pam_unix.so account sufficient pam_succeed_if.so uid < 100 quiet account sufficient pam_winbind.so use_first_pass account required pam_permit.so password requisite pam_cracklib.so try_first_pass retry=3 password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok password sufficient pam_winbind.so use_first_pass password required pam_deny.so session optional pam_keyinit.so revoke session required pam_mkhomedir.so umask=0022 skel=/etc/skel session required pam_limits.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so session required pam_winbind.so use_first_pass
/etc/pam.d/common-session
" путём добавления в него следущей строки:... session required pam_mkhomedir.so umask=0022 skel=/etc/skel ...
Другие файлы "/etc/pam.d/common-*
" трогать не нужно, там уже всё необходимое проставлено.
/etc/pam.d/system-auth
" мы прописали "session required pam_mkhomedir.so umask=0022 skel=/etc/skel
", при входе пользователю будет автоматически создан локальный домашний каталог.smbd
", "nmbd
" и "winbind
" стартуют при запуске системы:chkconfig --list smb chkconfig --list winbind
off
", разрешаем запуск:chkconfig smb on chkconfig winbind on