如何将新的属性添加到现有的LDAP对象类?

我创build了一个自定义的LDAP objectClass,但在将其添加到我的OpenLDAP服务器之前,忘记了几个属性。 我遵循这个Ubuntu文档页面上的说明: https : //help.ubuntu.com/12.04/serverguide/openldap-server.html我正在运行的Ubuntu 12.04。

那么,如何将一个新的MAY属性添加到已经应用到服务器的objectClass?

特别是在OpenLDAP上,但最好也知道Novell eDirectory如何。

简短的回答

与使用多值属性的常规ldap条目完全相同,请使用ldapmodify。

这几乎是我所期望的,但由于您在对模式运行ldapsearch时看到的{N}索引,我不是100%确定的。

长的答案

首先,find你的模式的DN。 像cn = {4} test,cn = schema,cn = config然后编写一个ldif文件并将其应用到您的目录。 在Ubuntu 12.04上,我将它作为根用于:

ldapmodify -Q -Y EXTERNAL -H ldapi:// -f test.ldif 

我有问题的部分是ldif修改语法,以及如何处理{N}个索引。

所以,你的ldif文件的开始应该是这样的:

 version: 1 dn: cn={N}test,cn=schema,cn=config changetype: modify 

修改一个objectClass:

 delete: olcObjectClasses olcObjectClasses: <old value> - add: olcObjectClasses olcObjectClasses: <new value> 

修改属性:

 delete: olcAttributeTypes olcAttributeTypes: <old value> - add: olcAttributeTypes olcAttributeTypes: <new value> 

我想到了一些有关语法的技巧:

  • 忽略你的ldif文件中的{N}索引。 他们自动修复。
  • 您需要架构DN中的{N}。
  • 记住语句之间的“ ”。
  • 在“ ”之后不要放一个新的行。 ldapmodify停在新行,所以后面的任何东西都不会被执行。
  • 在修改objectClass以包含它们之前添加新的属性。
  • 消除所有制表符。 他们导致系统产生乱码。