我在slapd.conf文件中有3个ACL。
1. access to attrs=userPassword
filter="(&(objectClass=customAttributes)(!(statusCode=A)))"
by * none
2. access to attrs=userPassword
filter="(&(objectClass=customAttributes)(statusCode=A))"
by self =wx
by * =x
3. access to dn.subtree="dc=mycompany,dc=com"
by self write
by group.exact="cn=administrators,dc=mycompany,dc=com" write
by group.exact="cn=applications,dc=mycompany,dc=com" read
by * auth
ACL 1和2的目的是禁用状态代码不是A的任何用户。它工作正常。 ACL 3的目的是使member
组administrators
为管理员,member
组applications
组具有只读访问权限。其他人都必须进行身份验证。
如果我按照上面的顺序拥有ACL,那么对于ACL 3,我无法使用管理员帐户读取/编辑任何用户的userPassword
字段。如果我在1和2之前有ACL 3,则ACL 1和2不起作用。
我需要遵循ACL的特定顺序吗?这3个ACL可以合并到一个ACL中吗?
答案 0 :(得分:0)
我必须按如下方式更改ACL 2
2. access to attrs=userPassword
filter="(&(objectClass=customAttributes)(statusCode=A))"
by self =wx
by group.exact="cn=administrators,dc=mycompany,dc=com" write
by * =x
原因:早期的ACL 3未执行,因为我已经在ACL 2(by * =x
)中拥有其他所有权限。