如何允许 openLDAP 服务器上的用户创建、更新和修改某个组织单位下的用户?

如何允许 openLDAP 服务器上的用户创建、更新和修改某个组织单位下的用户?

大约两周以来,我一直在尝试允许属于某个组(例如cn=Admins,dc=mydomain,dc=com:)的 openLDAP 用户访问create, modify, update, and delete属于另一个组organizationalUnit(例如ou=Users,dc=mydomain,dc=com:)的用户。我尽了一切努力来解决这个问题。例如通过 Google 搜索,通过服务器故障,最后搜索堆栈溢出但无济于事。我对 openLDAP 还很陌生,这可能是一个错误和/或我忽略了olcAccess中的属性dn: olcDatabase={1}hdb,cn=config

管理组.ldif

dn: cn=Admins,dc=ldapserver,dc=com
changetype: add
objectClass: groupOfNames
objectClass: top
member: cn=admin,ou=Users,dc=ldapserver,dc=com
cn: Admins

用户.ldif

dn: ou=Users,dc=ldapserver,dc=com
changetype: add
objectClass: organizationalUnit
objectClass: top
ou: Users

默认 olcAccess

笔记:这是全新安装的 openLDAP 服务器附带的默认 ACL。

dn: olcDatabase={1}hdb,cn=config
olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to * by * read

请注意1:ACLs因为我对 openLDAP 还很陌生,所以除了第一次安装 openLDAP 服务器时默认的设置之外,我没有设置任何其他设置。

请注意2:在我提出问题之前我尝试过这个问题这里这显然对我不起作用。

谢谢,亚历克斯

答案1

在 openldap 中,ACL 总是按照编号为 {0}、{1} 的行列表从上到下进行评估。一旦满足条件,就会进行评估立即地已停止(假设未使用中断)。

在 Ubuntu 设置且兼容的默认 ACL 中有这一行:

olc访问:{2}到 *由 * 阅读

至 * 由 *:满足一切要求,在其后添加行完全没有效果。

讨论的解决方案此链接以上内容应该可以解决您的问题,我建议您尝试这个 ACL 列表:

olcAccess: {0}to attrs=userPassword by self write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to dn.subtree="ou=Users,dc=ldapserver,dc=com"
             by group/groupOfUniqueNames/uniqueMember="cn=Admins,dc=ldapserver,dc=com" write

并将管理员组的objectClass更改为groupOfUniqueNames。

相关内容