OpenLDAP 服务端配置(二): 允许用户自行修改密码
默认配置下, 用户无法自行修改密码, 需另行配置
注意:下面操作中 “cn=admin,dc=domain,dc=com” 需要替换为自己的root/admin dn
1. 修改slapd.conf文件(默认安装在/etc/openldap下)
#找到下面几条,去掉前面的井号 modulepath /usr/lib/openldap modulepath /usr/lib64/openldap modeleloda ppolicy.la
2.slapd.conf文件在database config前面加上两个字段
access to attrs=userPassword by self write by anonymous auth by dn="cn=admin,dc=domain,dc=com" write by * none access to * by self write by dn="cn=admin,dc=domain,dc=com" write by * none
3. slapd.conf配置文件末尾添加:
overlay ppolicy
ppolicy_default cn=admin,dc=domain,dc=com
4. 然后重新生成数据库配置文件
rm -rf /etc/openldap/slapd.d/* [root@ll ~]$ slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d config file testing succeeded
5.增加 acl 规则
在配置文件 /etc/openldap/slapd.d/cn\=config/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 olcAccess: {1}to * by dn.base="cn=admin,dc=domain,dc=com" write by self write by * read
6.修改文件校验值
上述文件内容改了, 文件校验值就会发生变化, 需要修改文件中第二行的校验值
# 安装工具包 yum install -y perl-Archive-Zip # 截取除了文件前两行以外的内容 tail -n +3 /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif \ > /tmp/temp.ldif # 计算校验值 crc32 /tmp/temp.ldif # 将crc32 输出的校验值更新到原ldif 文件(/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif)的第2行中(虽然是被#号注释的)
7. 修改权限, 并重启服务
chown -R ldap:ldap /etc/openldap/* chown -R ldap:ldap /var/lib/ldap /etc/init.d/slapd restart
参考:
OpenLDAP 服务端配置(二): 允许用户自行修改密码