Эти действия опробованы на 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