如何在具有动态配置 = cn 后端的 Debian 5 上为 OpenLDAP 安装新模式?

如何在具有动态配置 = cn 后端的 Debian 5 上为 OpenLDAP 安装新模式?

我正在从另一台服务器导入 OpenLDAP 数据库,导入时,一些用户出现一些错误,问题是不是mozillaAbPersonAlpha有效的objectClass

#!ERROR [LDAP Error Code 21 - objectClass: value #3 invalid per syntax]
...
dn: uid=somedude,cn=Whatever,dc=test,dc=com
sn: Some Dude
givenName: Dude
mail: [email protected]
mozillaCustom1: Engineering
l: Somewhere
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: mozillaAbPersonAlpha
uid: somedude
cn: Some Dude

据我所知,我安装的 OpenLDAP 似乎缺少一个架构mozillaABPersonAlpha

但是我该如何安装这个模式呢?


编辑:服务器正在使用新的配置后端,因此没有任何slapd.conf文件。相反,有一个/etc/slapd.d/目录,其目录名称很奇怪(例如/etc/slapd.d/cn=config/)。

在这种情况下我该如何添加新模式?

答案1

我回答自己的问题是因为我想知道如何在使用新slapd.d/dynamic/cn=config后端时解决问题,而且我不想回到原来的slapd.conf方法。(据我所知,几乎没有人这样做)

当我尝试使用“ldapadd”添加新模式时,我总是收到以下错误:

ldapadd -H ldap://whatever.test.com -D "cn=admin,dc=whatever,dc=test,dc=com" -x -W -f mozillaabpersonalpha.ldif
ldap_add: Insufficient access (50)

因此,BindDN我使用的 没有该权限。我需要设置 ACL 或使用 进行rootDN该操作。

我不知道为什么,但在配置slapddebian 软件包时,它允许我为我的 DIT 创建管理员帐户,但它没有提到rootDN。经过一番浏览,我发现了这个博客rootDN这解释了如何在使用模式时设置密码cn=config

因此,编辑该文件/etc/ldap/slapd.d/cn=config/olcDatabase\=\{0\}config.ldif并添加以下内容:

olcRootDN: cn=admin,cn=config
olcRootPW: mypassword

我必须重新启动 slapd 才能使更改生效(这应该不是必需的,但是……)。为了测试它,我运行了以下命令:

ldapwhoami -H ldap://whatever.test.com -D "cn=admin,cn=config" -x -w mypassword

成功了!下一步是mozillaAbPersonAlpha使用以下命令加载 ldif 格式的架构ldapadd

ldapadd -H ldap://whatever.test.com -D "cn=admin,cn=config" -x -w mypassword -f mozillaabpersonalpha.ldif

响应成功

adding new entry "cn=mozillaabpersonalpha,cn=schema,cn=config"

最后,现在可以添加一个依赖于mozillaABPersonAlpha架构的用户。例如,该文件newuser.ldif包含以下内容:

dn: uid=somedude,cn=Whatever,dc=test,dc=com
sn: Some Dude
givenName: Dude
mail: [email protected]
mozillaCustom1: Engineering
l: Somewhere
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: mozillaAbPersonAlpha
uid: somedude
cn: Some Dude

现在将其添加到新目录(不使用帐户rootDN)就可以了:

ldapadd -H ldap://whatever.test.com -D "cn=admin,dc=whatever,dc=test,dc=com" -x -W -f usertest.ldif 
Enter LDAP Password: 
adding new entry "uid=somedude,cn=SomeGroup,cn=whatever,dc=test,dc=com

答案2

复制粘贴那个模式到服务器上的文件中,然后添加:

include /path/to/that/file.schema

在您的 slapd.conf 中并重新启动 slapd。

答案3

在您的 slapd.conf(5) 文件中将会有(一些?)“include”语句:

include         /etc/openldap/schema/core.schema

您需要下载架构文件并将其与已存在的其余文件一起放入 schema/ 目录中(将所有内容放在一个位置更简单),然后更改配置以包含它。然后重新启动 OpenLDAP。

http://www.zytrax.com/books/ldap/ch6/#include

相关内容