OpenLDAP 2.4 的自定义架构

OpenLDAP 2.4 的自定义架构

我是 OpenLDAP 管理的新手。我的目标是学习如何创建自定义架构,并以此方式自定义“我的”目录服务器。

我尝试添加一个可选属性 - ipPhone。创建了一个模式(虚拟),然后将其转换为以下 LDIF 文件:

dn: cn=dummy,cn=schema,cn=config
changetype: add
objectClass: olcSchemaConfig
cn: dummy
dn: cn=dummy,cn=schema,cn=config

changetype: modify
#changetype: add
add: olcAttributeTypes
olcAttributeTypes: {0}( 1.3.6.1.4.1.4203.666.100.123 NAME 'ipPhone'
DESC 'ip telephone internal or routable number' SUP telephoneNumber )
-
add: olcObjectClasses
olcObjectClasses: {0}( 1.3.6.1.4.1.4203.666.100.1 NAME 'dummyPerson'
DESC 'Dummy-server user' SUP inetOrgPerson STRUCTURAL MAY ipPhone )

当我尝试使用 ldapmodify(1) 添加此模式时,出现以下错误:

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

我做错了什么?另外,我在哪里可以阅读有关“changetype”的信息?我不确定在哪里为我的 LDIF 使用“modify”或“add”。

谢谢。

答案1

变更类型对整个条目而言是全局的。dn 下需要一个单一的 changetype:在您的示例中,“add”是正确的,因为 dn 之前在目录中不存在。

然后你必须将这些对堆叠起来:

attribute_type: attribute_value

添加代替或者删除关键字在这里是不合适的:它们应该与changetype: modify; 一起使用,出于同样的原因,用于分隔属性的破折号 (-) 也不合适。

整个 ldif 看起来像:

 dn: cn=dummy,cn=schema,cn=config
 changetype: add       
 cn: dummy
 objectClass: olcSchemaConfig
 olcAttributeTypes: {0}( 1.3.6.1.4.1.4203.666.100.123 NAME 'ipPhone'
  DESC 'ip telephone internal or routable number' SUP telephoneNumber )
 olcObjectClasses: {0}( 1.3.6.1.4.1.4203.666.100.1 NAME 'dummyPerson'
  DESC 'Dummy-server user' SUP inetOrgPerson STRUCTURAL MAY ipPhone )

相关内容