我尝试授予cn=admin,ou=Administrators,dc=example,dc=com
完全写权限,ou=People,dc=example,dc=com
以便该管理员可以创建(当然也可以读取)新条目ou=People
,也可以修改它们(例如更改密码)。
我的 ldif 文件看起来像
dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {4}to dn.subtree="ou=People,dc=example,dc=com" by dn.exact="cn=admin,ou=Administrators,dc=example,dc=com" write
运行后
ldapadd -Y EXTERNAL -H ldapi:/// -f permission.ldif
,我得到了
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}mdb,cn=config"
有人能解释一下这里出了什么问题以及如何纠正吗?我尝试了网上找到的很多方法。
答案1
经过几次反复尝试后,我找到了一个可行的解决方案。
看一下这个 ldif:
dn: olcDatabase={1}mdb,cn=config
changetype: modify
delete: olcAccess
-
add: olcAccess
olcAccess: {0}to attrs=userPassword by self write by dn="cn=admin,ou=Administrators,dc=example,dc=com" write by anonymous auth by * none
olcAccess: {1}to attrs=shadowLastChange by self write by * read
olcAccess: {2}to dn.subtree="ou=People,dc=example,dc=com" by dn.exact="ccn=admin,ou=Administrators,dc=example,dc=com" write
olcAccess: {3}to * by * read
/edit:好吧,这让您可以在 ou=People 下创建新用户,但您不能更改他们的所有属性。