无法在OpenLDAP中添加自定义属性

我想在OpenLDAP中添加自定义属性,但我可能不理解这个概念。 我所做的是:

我创build了custom.schema

attributetype ( 1.3.6.1.4.1.4203.666.100.122 NAME ( 'dateOfBirth' ) SUP name ) attributetype ( 1.3.6.1.4.1.4203.666.100.123 NAME ( 'IPPhone' ) SUP name ) objectclass ( 1.3.6.1.4.1.4203.666.100.1 NAME 'customAttributes' DESC 'Custom attributes class' ) 

我添加到slapd.conf

 include /usr/local/etc/openldap/schema/custom.schema 

现在我想将这个对象类分配给当前数据库中的每个uid。 所以我倾倒了数据库,添加了objectclass属性到一些uid,并在导入LDIF时,ldap说:

 65) invalid structural object class chain (inetOrgPerson/customAttributes) 

LDIF条目是这样的:

 dn: dc=sss,dc=com objectClass: top objectClass: dcObject objectClass: organization o: sss.com dc: sss structuralObjectClass: organization dn: ou=People,dc=sss,dc=com objectClass: organizationalUnit ou: People structuralObjectClass: organizationalUnit dn: uid=zzz,ou=People,dc=sss,dc=com objectClass: posixAccount objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: customAttributes structuralObjectClass: inetOrgPerson ... 

你可以请导航我如何添加这些自定义属性?

无效结构对象类链错误中可以看出,存在违反了STRUCTURAL objectClass规则的情况。 没有相反的声明,你的customAttributes objectClass被视为一个STRUCTURAL objectClass,它不能和inetOrgPerson一起工作。 我会build议尝试改变你的架构,沿着以下几行:

 objectclass ( 1.3.6.1.4.1.4203.666.100.1 NAME 'customAttributes' AUXILIARY DESC 'Custom attributes class' MAY (dateofBirth $ IPPhone) ) 

有关进一步的解释,我会阅读LDAP指南中常见的错误原因。 除此之外,您试图创build的架构的粗略外观可以使用更多的思想进入组织。 通常build议在一棵树下有objectClass实体,在另一棵树下有attributeType实体以避免混淆和碰撞。

你的新对象类需要引用新的属性。 通常作为MAY条款来完成

 objectclass ( 1.3.6.1.4.1.4203.666.100.1 NAME 'customAttributes' DESC 'Custom attributes class' MAY (dateofBirth $ IPPhone) ) 

可能还有其他要求。 OpenLDAPpipe理员指南是最好的开始。 这里是class级信息

你是否根据上面的post修改了架构? 而且,另外,.schema文件是可读的并且具有正确的权限?

系统日志(或slapd的日志文件)在重新启动时是否出现错误?