Noe*_*eto 6 debian openldap debian-lenny
我正在从另一台服务器导入 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: dude@test.com
mozillaCustom1: Engineering
l: Somewhere
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: mozillaAbPersonAlpha
uid: somedude
cn: Some Dude
Run Code Online (Sandbox Code Playgroud)
AFAICT 似乎我的 OpenLDAP 安装缺少mozillaABPersonAlpha的架构。
但是我该如何安装这个架构呢?
编辑:服务器正在使用新的配置后端,因此没有任何slapd.conf
文件。相反,有一个/etc/slapd.d/
带有奇怪目录命名的目录(例如/etc/slapd.d/cn=config/
)。
在这种情况下如何添加新架构?
我正在回答我自己的问题,因为我想知道如何在使用新slapd.d/dynamic/cn=config
后端时解决问题,而且我不想回到该slapd.conf
方法。(几乎没有人这样做,AFAICT)
当我尝试使用 `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)
Run Code Online (Sandbox Code Playgroud)
所以BindDN
我使用的没有那个特权。我需要设置一个 ACL 或使用该rootDN
操作。
我不知道为什么,但是在配置slapd
debian 包时,它允许我为我的 DIT 创建一个管理员帐户,但它没有提到rootDN
. 经过一番浏览,我发现这个博客解释了如何rootDN
在使用cn=config
架构时设置密码。
因此,编辑该文件/etc/ldap/slapd.d/cn=config/olcDatabase\=\{0\}config.ldif
并添加以下内容:
olcRootDN: cn=admin,cn=config
olcRootPW: mypassword
Run Code Online (Sandbox Code Playgroud)
我必须重新启动 slapd 才能使更改生效(应该没有必要,但是......)。为了测试它,我运行了以下命令:
ldapwhoami -H ldap://whatever.test.com -D "cn=admin,cn=config" -x -w mypassword
Run Code Online (Sandbox Code Playgroud)
它奏效了!下一步是mozillaAbPersonAlpha
使用 ldif 格式加载架构ldapadd
:
ldapadd -H ldap://whatever.test.com -D "cn=admin,cn=config" -x -w mypassword -f mozillaabpersonalpha.ldif
Run Code Online (Sandbox Code Playgroud)
响应成功
adding new entry "cn=mozillaabpersonalpha,cn=schema,cn=config"
Run Code Online (Sandbox Code Playgroud)
最后,mozillaABPersonAlpha
现在可以添加一个依赖于架构的用户。例如,该文件newuser.ldif
具有以下内容:
dn: uid=somedude,cn=Whatever,dc=test,dc=com
sn: Some Dude
givenName: Dude
mail: dude@test.com
mozillaCustom1: Engineering
l: Somewhere
objectClass: inetOrgPerson
objectClass: top
objectClass: person
objectClass: mozillaAbPersonAlpha
uid: somedude
cn: Some Dude
Run Code Online (Sandbox Code Playgroud)
并将其添加到新目录(不使用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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14342 次 |
最近记录: |