LDAP根条目添加失败:ldap_add: No such object (32) 求助
问题排查:LDAP根条目添加失败(No such object (32))
可能原因及解决步骤
1. 实例初始化未加载指定LDIF文件
你的配置文件中指定了init_ldif= /tmp/mytest.ldif,但实例启动时可能未成功加载该文件:
- 检查实例日志:查看
/var/log/dirsrv/sn/errors和/var/log/dirsrv/sn/access日志,搜索mytest.ldif相关记录,确认是否有加载失败的报错(如权限不足、文件路径错误)。 - 验证文件权限:确保
/tmp/mytest.ldif的权限允许dirsrv用户读取(可执行chmod o+r /tmp/mytest.ldif临时测试)。
2. LDAP服务器suffix配置不匹配
错误No such object (32)在添加根条目时出现,通常意味着服务器未将dc=mytest,dc=net识别为根后缀:
- 检查服务器当前suffix配置:执行以下命令查询根DSE:
查看返回结果中的ldapsearch -x -D "cn=Directory Manager" -w password -h localhost -p 389 -b "" -s base "(objectClass=*)"nsslapd-suffix属性是否为dc=mytest,dc=net。如果不符,需要修改实例配置:
重启实例后再尝试添加。dsconf sn suffix set dc=mytest,dc=net
3. 手动添加命令的潜在问题
尝试调整ldapadd命令参数,避免可能的URL格式问题:
ldapadd -x -D "cn=Directory Manager" -w password -h localhost -p 389 -f /tmp/mytest.ldif
(替换原命令中的-H为-h和-p分开指定主机和端口,部分LDAP客户端对-H的URL解析可能存在差异)
4. Backend未关联到suffix
检查userRoot backend是否正确绑定到指定suffix:
- 查看实例配置文件
/etc/dirsrv/slapd-sn/dse.ldif,确认是否存在如下条目:
如果缺失,手动添加该配置并重启实例。dn: cn=userRoot,cn=ldbm database,cn=plugins,cn=config nsslapd-suffix: dc=mytest,dc=net
内容的提问来源于stack exchange,提问作者Fer Linares
相关产品推荐
相关产品推荐

