vim ro_access.ldif

vim ro_access.ldif

OpenLDAP のサブ組織の ACL を追加したいと思います。

これは ACL ドキュメントです: https://www.openldap.org/doc/admin24/access-control.html

ldapmodify実行中の OpenLDAP インスタンス上の LDAP DB を更新するために使用しています。

これはldifインポートしたファイル:

vim ro_access.ldif

dn: olcDatabase={1}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {2}to dn.children="ou=users,dc=example,dc=com" by dn.exact="cn=workstation,ou=applications,dc=example,dc=com" read

私が期待する

  • cn=workstation,ou=applications,dc=example,dc=com児童の読み書きができる必要があるou=users,dc=example,dc=com
  • auth前述のデフォルトの動作を実行する必要があります。
  • anonymous前述のデフォルトの動作を実行する必要があります。

私は持っている

  • ldapwhoami一緒に働くcn=workstation,ou=applications,dc=example,dc=com
  • ldapsearch結果を返すuid=someone,ou=users,dc=example,dc=comのに失敗しましたcn=workstation,ou=applications,dc=example,dc=com

編集

olcAccess {1}{2}{2}を に置き換えてみました{1}

これは完全に置き換えられた ACL ですが、これも機能しません。

dn: olcDatabase={1}mdb,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by self write by dn="cn
 =admin,dc=example,dc=com" write by dn="cn=ropw,dc=example,dc=co
 m" read by anonymous auth by * none 
olcaccess: {1}to dn.children="ou=users,dc=example,dc=com" by dn
 .exact="cn=workstation,ou=applications,dc=example,dc=com" read
olcaccess: {2}to * by self write by dn="cn=admin,dc=example,dc=com" write
  by dn="cn=ro,dc=example,dc=com" read by dn="cn=ropw,dc=exam
 ple,dc=com" read by * none 

理由が分かりますか?

答え1

by anonymous auth by * noneACL ディレクティブの最後に以下を追加してみてください:

olcAccess: {1}to dn.children="ou=users,dc=example,dc=com" by dn
 .exact="cn=workstation,ou=applications,dc=example,dc=com" read
by anonymous auth by * none

関連情報