You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CentOS7修改olcDatabase={2}hdb.ldif时遇No such object(32)错误求助

解决LDAP修改配置时出现的“ldap_modify: No such object (32)”错误

这个错误的核心原因很明确:你在ldif文件里指定的olcDatabase={2}hdb,cn=config条目根本不存在于你的LDAP配置中。CentOS 7上默认安装的OpenLDAP,其hdb数据库的条目编号通常不是{2},咱们一步步来排查修复:

1. 先确认实际存在的数据库配置条目

首先运行这条命令,列出所有当前配置里的数据库条目:

ldapsearch -Y EXTERNAL -H ldapi:/// -b cn=config '(olcDatabase=*)' dn

你会得到类似这样的输出:

# extended LDIF
#
# LDAPv3
# base <cn=config> with scope subtree
# filter: (olcDatabase=*)
# requesting: dn
#

dn: olcDatabase={0}config,cn=config
dn: olcDatabase={1}hdb,cn=config

# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2

这里的olcDatabase={1}hdb,cn=config就是你要找的目标条目(注意编号可能是{1}而不是你用的{2})。

2. 修正你的db.ldif文件

根据上面查到的正确dn,修改你的db.ldif内容,同时还要注意去掉dc值里的多余空格(你写的dc= ec2里dc后面有空格,这会导致LDAP解析错误):

dn: olcDatabase={1}hdb,cn=config  # 这里替换成你查到的实际编号
changetype: modify
replace: olcSuffix
olcSuffix: dc=ec2,dc=internal

dn: olcDatabase={1}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=ec2,dc=internal

dn: olcDatabase={1}hdb,cn=config
changeType: modify
add: olcRootPW
olcRootPW: {SSHA}6zHtA20qkTmdLrJSfxo+VV3QLGS7m0CZ

3. 重新执行修改命令

运行你之前的命令,现在应该可以成功修改了:

ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif

额外检查点

  • 确保slapd服务处于运行状态:systemctl status slapd,如果没启动先启动它
  • 如果你是刚安装的OpenLDAP,确认已经完成初始化:比如复制了默认的DB_CONFIG模板到/var/lib/ldap/(命令:cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && chown ldap:ldap /var/lib/ldap/DB_CONFIG)

内容的提问来源于stack exchange,提问作者subrat padhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 12:52:29