我已经在我的 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
此访问控制赋予组成员写入权限、赋予其他用户读取权限以及赋予匿名用户连接权限。
当然这条线一般来说是不够的,但这是另一个话题。