Как стать автором
Обновить

Пользователи домена в Linux

Устал я следить на пользователями linux систем, что бы пароль меняли, что бы доступ был только у актуальных пользователей, а если человек уволился, то и доступ ему не нужен.
В общем вот как сделал я:
image
Картинка для затравки


Это не пошаговое руководство, это лог моих действий, местами с учетом ошибок.

Сначала задачка: загнать linux (у меня 95% CentOS) в домен.
Все эти конфиги вам знакомы.
#cat nsswitch.conf

group:      files ldap winbind
group_compat: nis
hosts:      files dns
networks: files
passwd:     files ldap winbind
passwd_compat: nis
shells: files
protocols: files
rpc: files
shadow:     files ldap winbind
netgroup:   files ldap
automount:  files ldap
services:   files


Далее инсталируем samba
yum install samba
Мой конфиг:

$ cat /etc/samba/smb.conf | grep -v '^;' | grep -v '^#' | grep -v '^$'
[global]
   workgroup = DMN
   password server = KD1W8.DNM.local
   realm = DMN.LOCAL
   security = domain
   idmap uid = 20000-30000
   idmap gid = 20000-30000
   template homedir = /home/%D/%U
   template shell = /bin/sh
   winbind use default domain = true
   winbind offline logon = false
        server string = Samba Server Version %v
        netbios name = px2ls
        interfaces = lo eth0 192.168.0.0/16
        hosts allow = 127. 192.168.
        log file = /var/log/samba/log.%m
        max log size = 50
winbind enum users = yes
winbind enum groups = yes
encrypt passwords = yes
winbind cache time = 60
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes


На самом деле мне я думаю что раздел printers не нужен, но он у меня есть.

Далее конфиг /etc/krb.conf
[logging] default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log

[libdefaults] default_realm = DMN.LOCAL
 dns_lookup_realm = true
 dns_lookup_kdc = true
 ticket_lifetime = 24h
 renew_lifetime = 7d forwardable = true

[realms] DMN.LOCAL = {
  kdc = dmn.local
  admin_server = dmn.local
  kdc = kd1w8.dmn.local }

[domain_realm]
 dmn.local = DMN.LOCAL 
.dmn.local = DMN.LOCAL


как всегда следим за временем и устанавливаем самба-клиент
yum install ntpdate
ntpdate 0.centos.pool.ntp.org; ntpdate 0.centos.pool.ntp.org
yum install samba-client samba-winbind

в /etc/hosts не забудь дописать свой хостнейм

ну и
# net ads join -S kd1w8.dmn.local -U username%password
Using short domain name -- DMN
Joined 'PX2LS' to realm 'dmn.local'
No DNS domain configured for px2ls. Unable to perform DNS Update.
DNS update failed!


еще нам пригодится krb5-workstation

для корректного создания домашней папки дописываем
vi /etc/pam.d/sshd
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022


Файл /lib/libnss_ldap.so.2 нужен для нормальной работы LDAP. Установите пакет nss-pam-ldapd, предоставляющий этот файл.
yum install nss-pam-ldapd

authconfig-tui (можно и просто authconfig, но я торопился)

после выполнения видим:
Запускаются службы Winbind:
Запускается nslcd:

Для разрешения входа на сервер linux по shh
# cat /etc/security/pam_winbind.conf | grep require_membership_of
require_membership_of = unix-admin (группа в AD)


Нам еще и sudo потребуется.

yum install sudo
# cat /etc/sudoers | grep unix
%unix-admin ALL=(ALL) ALL

Теперь проверяем работу. Пользователь, член доменной группы unix-admin должен успешно войти в систему и успешно выполнять команды от имени root.

$ ssh 192.168.0.17
The authenticity of host '192.168.0.17 (192.168.0.17)' can't be established.
RSA key fingerprint is 5f:51:29:a0:ba:f4:b3:e9:82:d4:c6:e6:07:0b:10:16.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.17' (RSA) to the list of known hosts.
myusername@192.168.0.17 password:
Creating directory /home/DNM/myusername.

ну и незабыть всё это засунуть в автостарт

chkconfig nslcd on
chkconfig winbind on
chkconfig smb on
chkconfig ntpdate on


Единственно не понял как избежать ошибки «No DNS domain configured for px2ls. Unable to perform DNS Update.
DNS update failed!».

Дебют!
Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.