Fedora系统中重置OpenLDAP管理员密码失败(权限不足)求助
Fedora系统中重置OpenLDAP管理员密码失败(权限不足)求助
兄弟,我之前在Fedora上折腾OpenLDAP的时候也碰到过一模一样的权限问题!先别慌,咱们一步步来排查和解决:
首先,你碰到的ldap_modify: Insufficient access (50)错误,大概率是两个原因:要么你指定的数据库DN不对,要么当前的LDAP访问控制规则限制了EXTERNAL身份的修改权限。
第一步:确认正确的数据库DN
不同的OpenLDAP安装方式,数据库的编号可能不一样(比如有的是{0}mdb,有的是{1}mdb),先执行这条命令列出所有数据库的配置条目:
ldapsearch -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase=*)' dn
找到对应你业务主数据库(关联dc=你的域名的那个)的DN,比如olcDatabase={1}mdb,cn=config,后续操作都要用这个正确的DN。
第二步:生成加密密码
先别直接用你之前写的固定加密串,用官方工具生成自己的密码更稳妥。比如你想设置新密码为mynewadminpass,执行:
slappasswd -s mynewadminpass
会输出类似{SSHA}abcdefghijklmnopqrstuvwxyz的加密字符串,复制好这个结果。
第三步:两种重置密码的方法
方法一:通过LDAP命令修改(优先尝试)
确保用root用户执行,并且指定正确的数据库DN:
sudo ldapmodify -Q -Y EXTERNAL -H ldapi:/// << EOF dn: olcDatabase={1}mdb,cn=config changetype: modify replace: olcRootPW olcRootPW: {SSHA}你刚才复制的加密串 EOF
如果还是提示权限不足,说明当前的访问控制规则限制了EXTERNAL身份的修改权限,那就用更直接的方法二。
方法二:直接修改slapd配置文件
这个方法绕过LDAP访问控制,直接修改底层配置,更稳妥:
- 先停止slapd服务:
sudo systemctl stop slapd
- 找到对应数据库的配置文件,Fedora上默认在
/etc/openldap/slapd.d/cn=config/目录下,比如olcDatabase={1}mdb.ldif,编辑这个文件:
sudo nano /etc/openldap/slapd.d/cn=config/olcDatabase={1}mdb.ldif
- 找到
olcRootPW这一行,替换成你刚才生成的加密字符串,保存退出。 - 重启slapd服务:
sudo systemctl start slapd
额外排查点
如果还是不行,去看看slapd的日志,能找到更详细的错误原因:
journalctl -u slapd
比如是不是DN写错了,或者配置文件的权限不对(要确保文件属于ldap:ldap用户组)。
备注:内容来源于stack exchange,提问作者the_endian
相关产品推荐
相关产品推荐

