如何向现有 LDAP 对象类添加新属性?

如何向现有 LDAP 对象类添加新属性?

我创建了一个自定义 LDAP 对象类,但在将其添加到 OpenLDAP 服务器之前忘记了几个属性。我按照此 Ubuntu 文档页面上的说明进行操作:https://help.ubuntu.com/12.04/serverguide/openldap-server.html我正在运行 Ubuntu 12.04。

那么,如何向已应用于服务器的 objectClass 添加新的 MAY 属性?

特别是关于 OpenLDAP,但如果知道如何关于 Novell eDirectory 也很好。

答案1

简短的回答

使用 ldapmodify 的方式与对具有多值属性的常规 ldap 条目的操作完全相同。

这几乎是我所期望的,但我不是 100% 确定,因为在运行 ldap 搜索架构时会看到 {N} 索引。

详细答案

首先,找到架构的 dn。例如 cn={4}test,cn=schema,cn=config 然后编写一个 ldif 文件并将其应用到您的目录。在 Ubuntu 12.04 上,我以 root 身份应用它:

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 以包含新属性之前,请先添加它们。
  • 删除所有制表符。它们会导致系统产生乱码。

相关内容