ldap_add - 无效语法 - 附加信息:ObjectClass - 值 #1 无效对等语法

ldap_add - 无效语法 - 附加信息:ObjectClass - 值 #1 无效对等语法

我在 adam.ldif 中有以下内容

dn: uid=adam,ou=users,dc=wesgibbs,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: adam
uid: adam
uidNumber: 16859
gidNumber: 100
homeDirectory: /home/adam
loginShell: /bin/bash
gecos: adam
userPassword: {crypt}x
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0

然后我尝试使用以下命令将上述 adam 用户添加到我的 LDAP 服务器

ldapadd -x -D "cn=Manager,dc=wesgibbs,dc=com" -W -f adam.ldif

我收到以下反馈:

Enter LDAP Password:
adding new entry "uid=adam,ou=users,dc=wesgibbs,dc=com"
ldap_add: Invalid syntax (21)
        additional info: objectClass: value #1 invalid per syntax

我目前的理解是 .ldif 文件中的 objectClass 条目从索引 0 开始。因此反馈中提到的错误索引 1 是部分objectClass: account。我的另一种理解,也是我怀疑的问题,是我没有在 slapd.conf 文件中包含正确的模块。我是 OpenLDAP 的新手,正在尝试掌握基础知识。任何帮助都非常感谢。

答案1

你可以在这里找到答案:为什么这个 ldapadd 命令会因“无效语法”错误而退出?

例如,通过使用slapd.conf,您将需要include模式定义(我使用来自 FreeBSD 13.2-RELEASE、openldap26 的路径):

# For objectClass account
include /usr/local/etc/openldap/schema/cosine.schema
# For objectClass posixAccount
include /usr/local/etc/openldap/schema/nis.schema

要激活新的模式,slapd之后需要重新启动。

相关内容