OpenLDAP 给出重复的 attributeType 错误

OpenLDAP 给出重复的 attributeType 错误

我正在设置一个登录节点并使用来自 Ubuntu 14.04 上的存储库的 openLDAP,但遇到了重复 attributeTypes 的问题。

问题似乎出在“gecos”字段属性上。当我尝试运行 slapcat 或 slapadd 或 slapindex 时,我得到以下输出:

$ slapcat
53ecd288 olcAttributeTypes: value #0 olcAttributeTypes: Duplicate attributeType: "1.3.6.1.1.1.1.2"
53ecd288 config error processing cn={3}nis,cn=schema,cn=config: olcAttributeTypes: Duplicate attributeType: "1.3.6.1.1.1.1.2"
slapcat: bad configuration file!

当我 grep 1.3.6.1.1.1.1.2 时,我得到了

$ cd /etc/ldap/ && grep -r '1.3.6.1.1.1.1.2' *
schema/nis.schema:attributetype ( 1.3.6.1.1.1.1.2 NAME 'gecos'
schema/nis.ldif:olcAttributeTypes: ( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; th
slapd.d/cn=config/cn=schema/cn={3}nis.ldif:olcAttributeTypes: {0}( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; th
slapd.d/cn=config/cn=schema/cn={2}nis.ldif:olcAttributeTypes: {0}( 1.3.6.1.1.1.1.2 NAME 'gecos' DESC 'The GECOS field; th

不用说,slapd 启动失败。

我不知道该如何解决这个问题。在搜索这个问题时,我发现人们在尝试使用来自其他较旧服务器的 core.schema 文件时遇到了类似的问题。我没有使用来自其他服务器的任何文件,也没有编辑 core.schema 或任何其他核心文件,ldap.conf 和 slapd.conf 除外。

有人了解这个问题吗?我该怎么做才能解决这个问题?

答案1

问题似乎是您使用了 OID 1.3.6.1.1.1.1.2 来定义两个“不同”的属性(实际上是两次相同的属性),一次在 中cn=config,cn=schema,cn={3}nis,一次在 中cn=config,cn=schema,cn={2}nis。引用属性的 OID 必须是唯一的。

我不知道您处于迁移过程的哪个阶段,但看起来您可能以某种方式两次导入了相同的架构。如果您刚刚进行了某种迁移,您可能需要再次尝试,注意只迁移架构一次。

如果您刚刚将一堆架构文件转换为 LDIF 以导入cn=config,cn=schema,请检查cn=config/cn=schema文件夹中是否存在 NIS(或任何其他架构组件)的多个条目。我认为您有文件cn={2}nis.ldifcn={3}nis.ldif;使用 diff 查看它们是否相同(或它们有何不同),必要时合并它们,然后尝试(重新)导入其中只有一个。

相关内容