无法使用运行时配置cn = config修改OpenLDAP中的模式

前端之家收集整理的这篇文章主要介绍了无法使用运行时配置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'

在命令行的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=config"
ldap_modify: No such object (32)

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

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

modifying entry "cn=mySchema,cn=config"
ldap_modify: No such object (32)
        matched DN: cn=schema,cn=config

更重要的是,我可以毫无问题地修改cn = config的其他条目(例如,olcDatabase = { – 1}前端,cn = config),并且更改会在服务重新启动时保持不变.只有当我尝试修改cn = schema,cn = config下的条目时才会发生错误.

服务器使用OpenLDAP 2.4.23运行CentOS 6.2,64位,它是通过yum安装的.我尝试了多个浏览器(JXplorer,Softerra LDAP Administrator)以及命令行,所有浏览器都具有相同的结果. slapd.d目录的所有者/组是ldap / ldap,即使将模式文件的权限修改为777也没有变化.在端口636(浏览器或命令行)上使用TLS也没有任何效果.

任何人都可以对此有所了解并解释可能阻止我通过cn = config修改架构的原因吗?

编辑:这是modify.ldif的内容

dn: cn={15}mySchema,cn=config
changetype: modify
add: olcAttributeTypes
olcAttributeTypes: ( 1.3.6.1.4.00000.2.3.14 NAME 'myTest' DESC 'This is only a test' EQUALITY caseIgnoreMatch Syntax 1.3.6.1.4.1.1466.115.121.1.15{128} )

我们使用我们的公司PEN代替00000,没有其他属性使用该OID.我发现在属性值中添加数字前缀没有区别,但前缀对于DN是必要的;没有它,错误意味着它所说的内容并且目录没有被修改.

如果条目中还有其他olcAttributeTypes,则必须执行替换而不是添加并列出LDAP中已有的所有其他属性.

尝试使用ldapvi进行编辑,它会自动执行.

编辑:如果这不起作用,那么你需要手动停止slapd并在/etc/ldap/slap.d/中编辑文件.当变化相对频繁时,这肯定不是解决方案……

在cn = config中编辑模式是一个新功能,您可能已经发现了一个错误(可能已在最新版本中修复).检查OpenLDAP ChangeLog并尝试使用最新版本.

猜你在找的Bash相关文章