默认配置下, 用户无法自行修改密码, 需另行配置
- 修改slapd.conf文件
#找到下面几条,去掉前面的井号
modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap
modeleloda ppolicy.la
- 在database config前面加上两个字段
access to attrs=userPassword
by self write
by anonymous auth
by dn="cn=admin,dc=domain,dc=com" write
by * node
access to *
by self write
by dn="cn=admin,dc=domain,dc=com" write
by * none
- 配置文件末尾添加:
overlay ppolicy
ppolicy_default cn=admin,dc=domain,dc=com
- 然后重新生成数据库配置文件
rm -rf /etc/openldap/slapd.d/*
[root@ll ~]$ slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded
- 增加 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
- 修改文件校验值
上述文件内容改了, 文件校验值就会发生变化, 需要修改文件中第二行的校验值
# 安装工具包
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 文件的第2行中
- 修改权限, 并重启服务
chown -R ldap:ldap /etc/openldap/*
chown -R ldap:ldap /var/lib/ldap
/etc/init.d/slapd restart
网友评论