我希望我问的问题不是愚蠢的。我是第一次创建自己的 LDAP 服务。
对于我的常规 mdb 数据库,添加多个管理员很容易。由于它包含属性,olcSuffix
因此可以添加新 OU、添加olcAccess
规则和所有内容,因此可以将复制配置为使用专用用户。
但是我还没有找到在复制配置时做类似的事情的方法:
olcDatabase={0}config,cn=config
我无法将 ou 添加到cn=config
dn。我收到以下错误:
could not add entry dn="ou=admins,cn=config" (line=825)
有什么建议吗?
更新 20180828
在这里我添加了有关我所尝试过的更多细节。
当我尝试导入时,服务器抱怨:
# ldapadd -c -x -H "ldap://localhost" -D "cn=admin,cn=config" -W -f test.ldif
Enter LDAP Password:
adding new entry "ou=admins_group,dc=config"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
adding new entry "uid=u1,ou=admins_group,dc=config"
ldap_add: Server is unwilling to perform (53)
additional info: no global superior knowledge
test.ldif的内容为:
dn: ou=admins_group,dc=config
objectClass: organizationalUnit
ou: admins_group
dn: uid=u1,ou=admins_group,dc=config
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
objectClass: securityPrincipal
uid: u1
cn: u1
sAMAccountName: u1
objectSid: u1
userPassword:: e1NTSEF9VVN6MVpuRmx5bWVmN2w5Tmp5WmJtb3duKzMwSEtXREc=
shadowLastChange: 15969
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1300
gidNumber: 1300
homeDirectory: /home/admin/u1
与我用来将用户添加到 mdb 数据库的几乎相同
答案1
这具体的错误意味着没有具有与您的条目的 DN 匹配的前缀的数据库。请记住,配置后端使用的是cn=config
,而不是dc=config
。(dc 表示它是 DNS 域组件,但事实并非如此。)
但即使前缀正确,您也会收到不同的错误(架构违规)。最后,cn=config不能有多余的条目,这是由后端强制执行的。
好消息是,用户帐户不会有位于 cn=config 下,它可以位于任何数据库。syncrepl 和 olcAccess 规则都丝毫不关心您的用户拥有什么 DN 后缀,因此只需将帐户添加到您的主 mdb 数据库 - 或重新使用现有的数据库。
例如这是我的配置:
dn:olcDatabase={0}config,cn=config olcAccess:{0}到 dn.sub="cn=config" 由 dn="cn=Replica,ou=System,dc=example,dc=org" 阅读 由 group="cn=Administrators,ou=Groups,dc=example,dc=org" 管理 由 * 无中断 ...
只要用户可以登录服务器,您就可以将其列在 ACL 中并用于复制。(实际上,证书或 SASL/Kerberos 登录可能会生成目录中不存在的 DN根本,并且它们仍然可以使用。)