我想创建一个除管理员用户之外的用户,该用户应该有权更新密码以及在 openldap 中创建另一个用户。我尝试使用以下 ldif 文件配置用户。但它没有按预期工作,并引发错误“未经授权的用户正在为其他用户更新密码”:
dn: olcDatabase={1}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {1}to *
by dn="cn=usrmanager,dc=example,dc=com" write
为什么会这样? 合适的配置是什么?
答案1
您首先需要查看现有的 ACL,因为它们是依次处理的。您很可能有一些先前的规则,只允许自行编辑密码,也许还有一些用于备份或复制的读取权限,……无论如何,您的规则可能不会被评估,就用户密码而言。
附注:您的 ACL 可能太大。您将允许您的usrmanager
帐户在任何地方重写几乎任何属性。
olcAccess: {X}to attrs=userPassword by dn="<an-admin-account-dn>" write
by self write
by dn="<some-syncrepl-or-backup-account>" read
by anonymous auth