无法使 OpenLDAP 管理员 ACL 正常工作

无法使 OpenLDAP 管理员 ACL 正常工作

我已经在我的 OpenLDAP 域中创建了一个名为 Admins 的 Posix 组,并向其中添加了一个用户。

然后我将以下内容添加到我的 slapd.conf 文件中

access to attrs=userPassword,shadowLastChange
    by dn="@ADMIN@" write
    by dn="cn=admin,ou=Groups,dc=xxxxxxxxx,dc=xx,dc=uk" write
    by anonymous auth
    by self write
    by * none

access to dn.base=""
    by * read

access to *
    by dn="@ADMIN@" write
    by dn="cn=admin,ou=Groups,dc=xxxxx,dc=xx,dc=uk" write
    by * read

然后我创建了一个用户并将其添加到管理员组,但该用户没有获得我期望的写权限。

我是 OpenLDAP 的新手,我确信我错过了一些显而易见的东西,但我似乎无法在本网站或其他网站上找到任何答案。

答案1

by dn="cn=admin,ou=Groups,dc=example,dc=com" write用。。。来代替by group.exact="cn=admin,ou=Groups,dc=example,dc=com" write

另外,停止使用slapd.conf并开始使用slapd-config。这样,您不必在每次进行更改时重新启动 ldap 服务器。


此外,如果您尝试直接在基本后缀下添加/删除条目,则需要删除access to dn.base="" by * read

答案2

检索 posixGroup 的成员(例如设置 ACL)与从 groupOfNames 检索它们不同。

要执行此操作,请检查链接内容处理同样的问题。

为了有效地测试组的权限,您应该将 ACL 限制为一行,如下所示:

access to * 
  by set="[cn=Admins,ou=Groups,dc=xxx,dc=co,dc=uk]/memberUid & user/uid" write 
  by users read 
  by anonymous auth

此访问控制赋予组成员写入权限、赋予其他用户读取权限以及赋予匿名用户连接权限。

当然这条线一般来说是不够的,但这是另一个话题。

相关内容