Назад | Перейти на главную страницу

Сопоставление прав собственности пользователей и групп через 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. И selinux выключен.

Я знаю, что машина успешно подключается к 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, это не проблема, но я мог бы использовать ту небольшую часть вашего мозга, которая знает, как это исправить.

Я слишком много думал об этом. Нет необходимости использовать pam_ldap и sssd. Согласно спискам sssd и CentOS, обычно один из них использует один или другой.

В конце концов, я воссоздал систему из своего шаблона виртуальной машины и использовал authconfig, который редактирует соответствующие системные файлы.

authconfig --enableldap --enableldapauth --enablemkhomedir --ldapserver=ldap.mydomain.edu --ldapbasedn="dc=mydomain,dc=com" --update

Единственная слабость authconfig заключается в том, что он не отключает полностью параметры, которые вы используете для включения. Так что экспериментировать с этим далеко небезопасно, поскольку вы можете легко разместить свою систему.