我对openldap很陌生,但对linux / unix环境非常熟悉。 我想在这里使用指南设置我的第一个testingopenldap环境。 我也读了大部分的pipe理员指南,我不得不承认,这是很多。
所以下面的Ubuntu的基本设置指南,我创build了一个ldif文件,看起来像这样:
dn: ou=People,dc=example,dc=com objectClass: organizationalUnit ou: People dn: ou=Groups,dc=example,dc=com objectClass: organizationalUnit ou: Groups dn: cn=engineers,ou=Groups,dc=example,dc=com objectClass: posixGroup cn: engineers gidNumber: 5000 dn: uid=john,ou=People,dc=example,dc=com objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount uid: john sn: Doe givenName: John cn: John Doe displayName: John Doe uidNumber: 10000 gidNumber: 5000 userPassword: johnldap gecos: John Doe loginShell: /bin/bash homeDirectory: /home/john
每当我尝试添加它使用:
$ ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif
我得到以下错误:
adding new entry "cn=engineers,ou=Groups,dc=my-domain,dc=com" ldap_add: Invalid syntax (21) additional info: objectClass: value #0 invalid per syntax adding new entry "uid=john,ou=People,dc=my-domain,dc=com" ldap_add: Invalid syntax (21) additional info: objectClass: value #0 invalid per syntax
在谷歌这个错误的结果不净任何有用的build议。 我在这里做错了什么?
您的问题无疑是您需要将nis架构加载到LDAP服务器中。 如何做到这一点取决于您是使用旧版slapd.confconfiguration文件,还是使用cn=config托pipe的新版dynamicconfiguration,并且是由slapd.d目录支持的。
slapd.conf 您需要通过添加一行代码来将模式定义include在slapd.conf中:
include /usr/local/etc/openldap/schema/nis.schema
这假定nis.schema文件位于该path; 如果没有,请适当修改path。
您将需要重新启动slapd来激活新的模式。
slapd.d (我包括完整性,虽然它不是直接与您当前的configuration相关)。
要使用dynamiccn=configconfiguration将模式加载到slapd ,可以使用ldapadd 。 根据ACL的configuration方式,命令可能如下所示:
ldapadd -Y EXTERNAL -H ldapi:// -f /usr/local/etc/openldap/schema/nis.ldif
这假设您的正在运行的slapd具有ACL,允许root证书的“peer credentials”身份validation。 如果这不起作用,则需要使用-D和-W提供适当的绑定DN和密码。
在这种情况下不需要重新启动。
我最近在遵循Ubuntu OpenLDAP Server教程的时候遇到了这个问题。 通过从我的行中删除所有尾随的空白来解决这个问题。