1:修改配置文件
在前面打開注釋
moduleload ppolicy.la
modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap
還要在database config前面加上這兩段
access to attrs=userPassword
by self write
by anonymous auth
by dn="cn=Captain,dc=le,dc=com" write
by * none
access to *
by self write
by dn="cn=Captain,dc=le,dc=com" write
by * read

在末尾添加
overlay ppolicy
ppolicy_default cn=Captain,ou=pwpolicies
,dc=le,dc=com
2:重新生成數據庫並加載slapd
rm -rf /etc/openldap/slapd.d/*
[root@ll ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
[root@ll ~]# chown -R ldap.ldap /etc/openldap/*
[root@ll ~]# chown -R ldap.ldap /var/lib/ldap
[root@ll ~]# /etc/init.d/slapd restart
3:可以看到ppolicy.la模塊已經加載進來了

也可以看到這個也加進來了

4:編輯
cat 1.ldif
dn: ou=pwpolicies,dc=le,dc=com
objectClass: organizationalUnit
ou: pwpolicies
ldapadd -x -D "cn=Captain,dc=le,dc=com" -W -f 1.ldif
添加進去

從phpLdapadmin看到多了

添加cn=Captain,ou=pwpolicies,dc=le,dc=com這個的一些屬性值
[root@ll ~]# cat 2.ldif
dn: cn=Captain,ou=pwpolicies,dc=le,dc=com
cn: Captain
objectClass: pwdPolicy
objectClass: person
pwdAllowUserChange: TRUE
pwdAttribute: userPassword
pwdExpireWarning: 259200
pwdFailureCountInterval: 0
pwdGraceAuthNLimit: 5
pwdInHistory: 5
pwdLockout: TRUE
pwdLockoutDuration: 300
pwdMaxAge: 2592000
pwdMaxFailure: 5
pwdMinAge: 0
pwdMinLength: 8
pwdMustChange: TRUE
pwdSafeModify: TRUE
sn: dummy value
然后導入:ldapadd -x -D "cn=Captain,dc=le,dc=com" -W -f 2.ldif


然后修改用戶的屬性
[root@ll ~]# cat modify.ldif
dn: uid=test5,ou=people,dc=le,dc=com
changetype: modify
replace: pwdReset
pwdReset: TRUE
ldapmodify -x -D "cn=Captain,dc=le,dc=com" -W -f modify.ldif 導入

ldapwhoami -x -D uid=test5,ou=people,dc=le,dc=com -W -e ppolicy -v 查看test5用戶的策略信息

然后測試:ssh test5@10.0.0.61,一直報錯,改不了:

這是因為配置文件變了:

這個里面的內容沒有使用ldap
正確的形式:

若passwd修改不了密碼,那是因為,沒有添加,Samba的按照Samba的再添加sambaLMPassword,sambaNTPassword即可
access to attrs=userPassword
by self write
by anonymous auth
by dn="cn=Captain,dc=le,dc=com" write
by * none
access to *
by self write
by dn="cn=Captain,dc=le,dc=com" write
by * read