小编the*_*Joe的帖子

无法使用运行时配置 cn=config 在 OpenLDAP 中修改架构

我在使用运行时配置 (cn=config) 修改 OpenLDAP 安装的架构时遇到问题。我想要做的是修改现有属性并将新属性添加到自定义架构中。当我尝试应用更改时遇到的错误是“没有这样的对象”或“没有这样的值”。使用JXplorer浏览器时,报错为:

javax.naming.NameNotFoundException: [LDAP: error code 32 - No Such Object]; remaining name 'cn={15}mySchema,cn=schema,cn=config'
Run Code Online (Sandbox Code Playgroud)

从命令行对 ldif 文件使用 ldapmodify 会引发相同的错误:

ldapmodify -h ldap://localhost/cn=config -x -p 389 -D cn=admin,cn=config -W -f modify.ldif
modifying entry "cn={15}mySchema,cn=schema,cn=config"
ldap_modify: No such object (32)
Run Code Online (Sandbox Code Playgroud)

然而,奇怪的是,即使发生此错误,也会为 slapd 服务的当前实例提交更改。例如,如果我添加了新属性并修改了一个对象以包含这些属性,那么这些属性在使用该对象的条目中是可用的。我可以继续进行,就好像更改有效一样。但是,如果 slapd 服务重新启动,则更改将恢复。

如果我删除 ldif 文件中 DN 的前导 {15},或属性值上的类似前缀,我会收到相同的错误(尽管可能出于不同的原因):

modifying entry "cn=mySchema,cn=schema,cn=config"
ldap_modify: No such object (32)
        matched DN: cn=schema,cn=config
Run Code Online (Sandbox Code Playgroud)

更重要的是,我可以毫无问题地修改 cn=config 的其他条目(例如,olcDatabase={-1}frontend,cn=config),并且更改在服务重启后仍然存在。只有当我尝试修改 cn=schema,cn=config 下的条目时才会发生错误。

该服务器运行 CentOS 6.2,64 位,使用通过 yum 安装的 OpenLDAP 2.4.23。我尝试了多种浏览器(JXplorer、Softerra LDAP Administrator)以及命令行,结果都一样。slapd.d …

openldap ldap schema

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

ldap ×1

openldap ×1

schema ×1