LDAP(slapd)ACL问题 – 可以添加但不能修改条目

我有一个LDAP服务器(slapd)的ACLconfiguration问题。 以下ACL条目作为适用的第一条规则处于活动状态:

{0}to dn.subtree="ou=some,ou=where,ou=beneath,dc=the,dc=rain,dc=bow" attrs=entry,children by users write 

现在发生的奇怪的事情是,给定的规则,我可以添加一个条目到相应的DN,但如果我想修改它与同一个用户,那么我得到

0x32(LDAP_INSUFFICIENT_ACCESS)

有人可以给我一个提示,问题可能是什么?

如果要允许修改整个条目,则需要完全删除attrs=选项。
我认为你误解了attrs=entry作用。 它不允许你修改整个条目。 entry属性只授予条目本身( 不是它的属性 )的权限,基本上只允许你删除它。 children属性是让你在这个条目下创build新的孩子的东西。 但是,一旦创build了子项,就不能修改它,因为它属于dn.subtree匹配项,并且ACL禁止修改除删除条目和创build子项之外的其他项。

http://www.openldap.org/doc/admin24/access-control.html

有两个特殊的伪属性项和子项。 要读取(因此返回)目标条目,主题必须具有对目标的条目属性的读取权限。 要执行search,主题必须具有对search基础的入口属性的search访问权限。 要添加或删除条目,主题必须具有对条目的条目属性的写入权限,并且必须具有对条目的父级的子属性的写入权限。 要重命名条目,主题必须具有对条目的条目属性的写入权限,并具有对旧父条目和新父条目的子属性的写权限。 本节结尾处的完整示例应该有助于清除问题。

如上所述,解决scheme是删除attrs选项。 这使ACL默认为一切,因此当您指定write ,它会让您写入该条目上的所有内容。