Отображение владения пользователями и группами через LDAP
Я устанавливаю smb 3.5 на хост CentOS 6.2 с помощью smbldap-tools. Ранее я устанавливал подобную конфигурацию на RHEL4, используя smb 3.0, но CentOS теперь использует nss-pam-ldapd и nslcd вместо nss_ldap, поэтому конфигурации нельзя перемещать напрямую.
Когда я делаю список общих папок, в которых LDAP должен определять владельца и группу пользователей, я получаю номера uidNumbers и gidNumbers, а не UID и GID.
[root@edgar2 openldap]# ls -l /data/home | tail
drwx------. 2 30634 30080 4096 Mar 18 2009 userdir1
drwx------. 33 30548 30075 4096 Jan 29 15:20 userdir2
drwx------. 3 30554 30075 4096 Jan 26 2009 userdir3
drwx------. 12 30467 30075 4096 Jun 21 2012 userdir4
drwx------. 4 30543 30075 4096 Oct 21 2008 userdir5
drwx------. 8 30555 30075 4096 Oct 31 10:36 userdir5
Другие детали: centos 6.2, samba 3.5, smbldap-tools 0.9.6, openldap 2.4.23
Я использую /etc/nsswitch.conf, /etc/pam_ldap.conf, /etc/nslcd.conf, /etc/pam.d/system-auth и / etc / sysconfig / authconfig. И Селинукс выключен.
Я знаю, что машина успешно подключается к LDAP. С этой машины работает ldapsearch, и я даже могу подключиться к общему ресурсу samba с помощью входа в ldap через smbclient.
Соответствующие части /etc/nsswitch:
passwd: files ldap
shadow: files ldap
group: files ldap
#hosts: db files nisplus nis dns
hosts: files dns
bootparams: nisplus [NOTFOUND=return] files
ethers: files
netmasks: files
networks: files
protocols: files ldap
rpc: files
services: files ldap
netgroup: nisplus ldap
#netgroup: ldap
publickey: nisplus
automount: files nisplus ldap
#automount: files ldap
aliases: files nisplus
Соответствующие части /etc/pam_ldap.conf (все остальное закомментировано):
host dir1.ourdomain.com
base dc=.ourdomain,dc=com
#uri ldaps://dir1.ourdomain.com
uri ldap://dir1.ourdomain.com
# basic auth config
binddn cn=admin,dc=ourdomain,dc=com
rootbinddn cn=admin,dc=ourdomain,dc=com
# random stuff
#timelimit 120
#bind_timelimit 120
#bind_policy hard
# brought these times down wmodes Aug 11, 2008
timelimit 30
bind_timelimit 30
bind_policy soft
idle_timelimit 3600
nss_initgroups_ignoreusers root,ldap
# pam config
#pam_password md5
pam_password md5
# config for nss
nss_base_passwd ou=people,dc=ourdomain,dc=com?one
nss_base_shadow ou=people,dc=ourdomain,dc=com?one
nss_base_group ou=group,dc=ourdomain,dc=com?one
# OpenLDAP SSL mechanism
# start_tls mechanism uses the normal LDAP port, LDAPS typically 636
ssl no
# OpenLDAP SSL options
# Require and verify server certificate (yes/no)
#tls_checkpeer yes
# CA certificates for server certificate verification
tls_cacertfile /etc/openldap/cacerts/cacert.pem
tls_cacertdir /etc/openldap/cacerts
# Client certificate and key
tls_cert /etc/openldap/cacerts/servercert.pem
tls_key /etc/openldap/cacerts/serverkey.pem
Соответствующие части /etc/pam.d/system-auth:
auth required pam_env.so
auth sufficient pam_fprintd.so
auth sufficient pam_unix.so nullok try_first_pass
auth requisite pam_succeed_if.so uid >= 500 quiet
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account required pam_unix.so
account sufficient pam_localuser.so
account sufficient pam_succeed_if.so uid < 500 quiet
account [default=bad success=ok user_unknown=ignore] pam_ldap.so
account required pam_permit.so
password requisite pam_cracklib.so try_first_pass retry=3 type=
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password sufficient pam_ldap.so use_authtok
password required pam_deny.so
session optional pam_keyinit.so revoke
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 optional pam_ldap.so
session optional pam_mkhomedir.so skel=/etc/skel umask=077
И единственная строка в / etc / sysconfig / authconfig, которую я изменил, была:
USELDAP=yes
Какие-нибудь мысли? Для тех, кто имеет опыт работы с NIS и PAM, я уверен, что это не просто, но я мог бы использовать немного вашего мозга, который знает, как это исправить.
1 ответ
Я думал об этом. Нет необходимости использовать pam_ldap и sssd. Согласно спискам sssd и CentOS, обычно один использует один или другой.
В конце я воссоздал систему из своего шаблона виртуальной машины и использовал authconfig, который редактирует соответствующие системные файлы.
authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=ldap.mydomain.edu --ldapbasedn="dc=mydomain,dc=com" --update
Единственным недостатком authconfig является то, что он не отключает параметры, которые вы используете для включения. Так что экспериментировать с безопасностью далеко не безопасно, так как вы можете легко разместить свою систему.