我在 CentOS 389-ds 上有一个 ldap 服务器。我配置了客户端 ubuntu 12.04 以在此基础上进行身份验证,并且运行良好。但它没有从服务器获取密码策略。例如,如果我将策略设置为强制用户在首次登录时更改密码,ubuntu 会忽略它并始终让用户登录。
我如何设置客户端来获取策略?
以下是客户端文件:
/etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
sudoers: ldap files
通用认证
auth [success=2 default=ignore] pam_unix.so nullok_secure
auth [success=1 default=ignore] pam_ldap.so use_first_pass
auth requisite pam_deny.so
auth required pam_permit.so
auth optional pam_cap.so
普通账户
account [success=2 new_authtok_reqd=done default=ignore] pam_unix.so
account [success=1 default=ignore] pam_ldap.so
account requisite pam_deny.so
account required
pam_permit.so
通用密码
password requisite pam_cracklib.so retry=3 minlen=8 difok=3
password [success=2 default=ignore] pam_unix.so obscure use_authtok try_first_pass sha512
password [success=1 user_unknown=ignore default=die] pam_ldap.so use_authtok try_first_pass
password requisite pam_deny.so
password required pam_permit.so
password optional pam_gnome_keyring.so
公共会话
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_ldap.so
session optional pam_ck_connector.so nox11
session optional pam_mkhomedir.so skel=/etc/skel umask=0022
/etc/ldap.conf
base dc=a,dc=b,dc=c
uri ldaps://a.b.c/
ldap_version 3
rootbinddn cn=directory manager
pam_password md5
sudoers_base ou=SUDOers,dc=a,dc=b,dc=c
pam_lookup_policy yes
pam_check_host_attr yes
nss_initgroups_ignoreusers avahi,avahi-autoipd,backup,bin,colord,daemon,games,gnats,hplip,irc,kernoops,libuuid,lightdm,list,lp,mail,man,messagebus,news,proxy,pulse,root,rtkit,saned,speech-dispatcher,sshd,sync,sys,syslog,usbmux,uucp,whoopsie,www-data
/etc/ldap/ldap.conf
BASE dc=a,dc=b,dc=c
URI ldaps://a.b.c/
ssl on
use_sasl no
tls_checkpeer no
sudoers_base ou=SUDOers,dc=a,dc=b,dc=c
sudoers_debug 2
pam_lookup_policy yes
pam_check_host_attr yes
pam_lookup_policy yes
pam_check_host_attr yes
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_REQCERT never
答案1
确保您已安装所有 libldap 相关库 - 例如 libnss-ldap、libpam-ldap、libkrb53。发布后再次尝试实施策略。
答案2
如果您尝试执行的操作需要 setuid 二进制文件,您可能会遇到以下情况:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=658896
http://www.bebt.de/blog/debian/archives/2011/02/20/T13_14_34/index.html