我正在使用 centos 6.7 创建 LDAP 服务器,但用户仍然无法更改自己的密码。
用户尝试更改密码时出现错误:
[john2@servergw ~]$ passwd
Changing password for user john2.
Enter login(LDAP) password:
New password:
Retype new password:
LDAP password information update failed: Insufficient access
Retype new password:
这是我服务器端的 /etc/openldap/slapd.conf:
access to attrs=userPassword,shadowLastChange
by self write
by anonymous auth
by * none
access to *
by self write
by * read
客户端上的我的 /etc/pam.d/passwd:
password required pam_cracklib.so retry=3
password sufficient pam_ldap.so use_authtok
password sufficient pam_unix.so nullok use_authtok md5 shadow
password required pam_deny.so
#%PAM-1.0
auth include system-auth
account include system-auth
password substack system-auth
请帮忙
答案1
尝试在 olcDatabase={2}bdb.ldif 文件中使用此 ACL
olcAccess: {0}to attrs=userPassword by self write by dn.base="cn=admin,dc=domain,dc=com" write by anonymous auth by * none
使用 dn.base 允许他输入密码。有人建议创建一个用户,他的唯一角色就是做这样的事情,但我发现使用 dn.base 通常效果很好