qua*_*nta 3 openldap ldap centos5 password-policy
我要将 check_mk 的 Multisite 与 OpenLDAP集成。配置 LDAP 连接器后,打开“用户和联系人”页面时出现以下错误:
Error executing sync hook
The "Authentication Expiration" attribute (pwdchangedtime) could not
be fetchedfrom the LDAP server for user {u'cn': [u'noreply']}.
Run Code Online (Sandbox Code Playgroud)
以下是我为实现密码策略覆盖所做的所有步骤:
为 OpenLDAP 服务器安装覆盖模块:
yum install openldap-servers-overlays
Run Code Online (Sandbox Code Playgroud)
将以下行添加到 /etc/openldap/slapd.conf:
include /etc/openldap/schema/ppolicy.schema
modulepath /usr/lib64/openldap
moduleload ppolicy.la
Run Code Online (Sandbox Code Playgroud)
然后我重新启动 OpenLDAP 并尝试更改密码。我确定它已成功更改,但pwdChangedTime
在运行时看不到该属性ldapsearch
:
$ ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -y .passwd.cnf "cn=noreply"
dn: cn=noreply,ou=it,dc=domain,dc=com
cn: noreply
mail: noreply at domain.com
maildrop: noreply at domain.com
sn: No
uid: noreply
objectClass: inetOrgPerson
objectClass: mailUser
objectClass: organizationalPerson
objectClass: person
objectClass: top
objectClass: pwdPolicy
objectClass: pwdPolicyChecker
pwdAttribute: userPassword
pwdMaxAge: 31536000
pwdMinAge: 60
pwdAllowUserChange: TRUE
userPassword: {MD5}xx
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
实际上,该pwdChangedTime
属性已经创建,但由于它是一个操作属性,因此默认情况下不会返回。你必须ldapsearch
用这个名字做一个:
$ ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -W "cn=noreply"
pwdChangedTime
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: cn=noreply
# requesting: pwdChangedTime
#
# noreply, it, domain.com
dn: cn=noreply,ou=it,dc=domain,dc=com
pwdChangedTime: 20130128154849Z
Run Code Online (Sandbox Code Playgroud)
或将加号 ( +
)附加到ldapsearch
:
# ldapsearch -x -D "cn=Manager,dc=domain,dc=com" -y .passwd.cnf "cn=noreply" +
# extended LDIF
#
# LDAPv3
# base <> with scope subtree
# filter: cn=noreply
# requesting: +
#
# noreply, it, domain.com
dn: cn=noreply,ou=it,dc=domain,dc=com
structuralObjectClass: inetOrgPerson
entryUUID: 047e7ce6-3b99-1031-83cb-afef2344189c
creatorsName: cn=Manager,dc=domain,dc=com
createTimestamp: 20120526161012Z
pwdChangedTime: 20130129032710Z
entryCSN: 20130129032710Z#00003a#00#000000
modifiersName: cn=Manager,dc=domain,dc=com
modifyTimestamp: 20130129032710Z
entryDN: cn=noreply,ou=it,dc=domain,dc=com
subschemaSubentry: cn=Subschema
hasSubordinates: FALSE
Run Code Online (Sandbox Code Playgroud)
要将此属性添加到在实施密码策略覆盖之前创建的所有用户,您只需userPassword
使用相同的值更新:
ldapsearch -x -D cn=Manager,dc=domain,dc=com -W -y .passwd.txt -L
"(&(objectclass=person)(!(pwdChangedTime=*)))" userPassword
| sed '/dn: /a\changetype: modify\nreplace: userPassword'
| ldapmodify -x -D cn=Manager,dc=domain,dc=com -y .passwd.txt -W
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9646 次 |
最近记录: |