OpenLDAP密码策略(ppolicy)对passwd命令生效但对ldappasswd命令失效的问题求助
OpenLDAP密码策略(ppolicy)对passwd命令生效但对ldappasswd命令失效的问题求助
我已经折腾这个问题快一周了,实在摸不着头脑,特来求助!
目前我配置的OpenLDAP已经能让passwd命令正常工作,用户可以从客户端修改自己的LDAP密码,而且ppolicy密码策略 overlay 也能正常生效:
$ passwd Current Password: New password: BAD PASSWORD: The password is shorter than 8 characters New password: BAD PASSWORD: The password is a palindrome New password: BAD PASSWORD: The password is the same as the old one passwd: Have exhausted maximum number of retries for service passwd: password unchanged
但是用ldappasswd命令修改密码时,情况就不对了:它允许设置单字符密码、回文字符串,但唯独会阻止使用历史密码:
$ ldappasswd -H ldap://**** -x -D "uid=test,ou=Users,dc=***,dc=***,dc=***" -W -A -S Old password: Re-enter old password: New password: Re-enter new password: Enter LDAP Password: $ # 这里输入"a"作为密码完全没问题(这明显不符合策略要求)
$ ldappasswd -H ldap://**** -x -D "uid=test,ou=Users,dc=***,dc=***,dc=***" -W -A -S Old password: Re-enter old password: New password: Re-enter new password: Enter LDAP Password: Result: Constraint violation (19) Additional info: Password is in history of old passwords $ # 输入之前用过的"password"就被阻止了,这部分是正常的
我理想的状态是**passwd和ldappasswd都严格遵循配置的密码策略**。
下面是我的slapd配置里的访问规则(路径:/etc/ldap/slapd.d/cn=config/olcDatabase={1}mdb.ldif):
... # manager是根绑定DN,密码存在/etc/ldap.secret里 olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by dn.base="uid=manager,ou=Users,dc=***,dc=***,dc=***" write by anonymous auth by * none olcAccess: {1}to * by * read by dn.base="uid=manager,ou=Users,dc=***,dc=***,dc=***" write ...
我自己猜测:passwd命令可能是用根DN(manager)绑定的,因为一旦移除manager账户的写权限,passwd就完全用不了了,但ldappasswd却不受影响。
有没有大佬能帮我分析下问题出在哪,怎么让ldappasswd也严格执行密码策略呀?
备注:内容来源于stack exchange,提问作者zmehall
相关产品推荐
相关产品推荐

