openLDAP 未将 ldif 导入“cn=config”

openLDAP 未将 ldif 导入“cn=config”

我在为 openLDAP 设置管理组时遇到问题。

我刚刚转到 olcconfig 并设置了以下 ldif:

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {3}to dn.subtree="dc=mysite,dc=com"
 by group(s)/groupOfNames/member="cn=admin,ou=group,dc=mysite,dc=com" manage

我尝试通过sudo ldapadd -D "cn=diradmin,dc=mysite,dc=com" -f admin.ldif -W -xdiradmin 为根 dn 来添加此项。当我执行此操作时,我得到:

modifying entry "olcDatabase={1}mdb,cn=config"
ldap_modify: Insufficient access (50)

我读过几个不同的教程,但不明白为什么会发生这种情况。有人能帮忙找出可能的原因吗(甚至指出一个好的教程!)。

谢谢。

- - - 编辑 - - -

我现在已经尝试过:sudo ldapadd -Y EXTERNAL -H ldapi:/// -f admin.ldif

以下是我的错误:

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"
ldap_modify: Insufficient access (50)

答案1

为了更新olcAccess您的属性,dc=mysite,dc=com您实际上需要cn=config数据库的权限。

您尝试使用的根 DN 仅适用于更新数据库中的对象dc=mysite,dc=com,它没有/不应该具有数据库的权限cn=config

我不知道您是如何生成配置的,但看起来您至少需要olcAccess: to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage by * noneolcDatabase={0}config,cn=config对象上添加类似的东西。这样您就可以使用EXTERNAL另一个答案中提到的身份验证来应用您原来的 LDIF 更改。

如果你没有配置允许你更新数据库的任何 ACL,cn=config那么你可以尝试接受的答案这个问题编辑通常位于/etc/ldap/slapd.d或下的数据库文件/etc/openldap/slapd.d

答案2

我不是任何方面的专家,但我认为这可能是您一开始设置配置时出现的问题,这需要更多的配置数据来进行故障排除,但如果您想应用 LDIF,则可以使用 EXTERNAL 身份验证技巧绕过 bind-dn:

ldapadd -Y EXTERNAL -H ldapi:/// -f <filename>

然后阅读这个旧线程,看看它是否能帮助您解决问题:https://www.openldap.org/lists/openldap-technical/201306/msg00220.html

相关内容