我想创建几个管理员用户,他们有权在特定组/组织单位中创建/删除用户。例如,
User: uid=testadmin, ou=people, dc=my,dc=net
应该有权在以下位置创建新用户/删除用户
ou=People,dc=my,dc=net
我尝试了以下 ACI,但没有工作
(target = "ldap:///ou=People,dc=my,dc=net")(targetattr = "*") (version 3.0;acl "testadmin Permissions";allow (proxy)(userdn = "ldap:///uid=testadmin,ou=people,dc=my,dc=net");)
我能够从 Directory Server 控制台添加管理用户,但这些用户数据不存储在 ldif 文件中,而只存储在 /var/lib/dirsrv/slap-ldap/db/ 的二进制数据库中。唯一的问题是这些用户拥有全部权限,而我不确定如何限制他们的访问权限。
答案1
嗯,答案很简单,也很合逻辑。为了为特定 OU 提供 ACI。在本例中,用户 sm 拥有目录 ou=Support Group 下的所有权限。
(targetattr = "*")
(target = "ldap:///ou=Support Group,dc=my,dc=net")
(version 3.0;
acl "sm aci";
allow (all)
(userdn = "ldap:///uid=sm,ou=Support Group,dc=my,dc=net")
;)
目标:指定应用规则的位置。
目标属性:可用于限制对条目各种属性的访问。例如,您作为“sm”用户无权更改密码,您可以在此处指定此类内容。
允许 ():指定权限
最后一个userdn(绑定规则):指定谁有权限。通过这种方式,您可以轻松地将访问权限授予其他用户,以管理他们自己的群组用户凭据。
答案2
经过测试,它可以完美运行:-
(targetattr = "*") (target = "ldap:///ou=linux,dc=pramod,dc=com")(version 3.0;acl "pramod aci";
allow (write)(userdn = "ldap:///uid=pkumar,ou=linux,dc=pramod,dc=com")
;)
根据此 acl,用户 pkumar 能够修改属于组织单位 (ou) linux 的所有可分辨名称 (dn) 的所有属性。如果您想要授予全部权限,只需更改为(write)
。(all)
如果您想要授予基本 dn 的权限,只需从目标中删除ou=linux
。