我使用 CentOS7,并且正在配置 OpenLDAP 基础。我有根管理员 (ldapadmin),他可以在整个基础(所有分支)中进行更改。我为部门创建分支,这些分支必须包含用户和 1 或 2 个管理员,他们可以添加用户并修改他们的所有信息并查看该分支的所有实体。一个分支的管理员不应进行更改或查看来自不同分支的用户。用户只能看到关于他们的所有信息并修改他们的信息,例如电子邮件、显示名称和密码。
我在每个分支中为该分支的管理员创建组 (groupOfNames)。
请问有人能帮我在 OpenLDAP 中编写可以执行这些操作的 ACL 吗?我尝试编写 ACL 已经好几个星期了,但仍然没有找到解决方案。感谢您的时间。祝一切顺利!
PS. 我的基地就像图片中那样。
这是我尝试过的想法(没有成功):
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadmin,dc=example,dc=com" read by * none
olcAccess: {1}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {2}to attrs=shadowLastChange by self write by self read by * none
olcAccess: {3}to dn.subtree="dc=department1,dc=example,dc=com" by self write by anonymous auth by group/groupOfNames/member="cn=admin,ou=Groups,dc=department1,dc=example,dc=com" manage by * none
olcAccess: {4}to dn.subtree="dc=department2,dc=example,dc=com" by self write by anonymous auth by group/groupOfNames/member="cn=admin,ou=Groups,dc=department2,dc=example,dc=com" manage by * none
olcAccess: {5}to * by self read by * search