web-dev-qa-db-ja.com

OpenLDAPはグループ書き込みアクセスを提供します

私たちのopenldapには複数のグループがあります:useradmins、agt、ib、iss、itt

「useradmins」グループには、常にすべてのグループを編集(書き込み)する権限があります。最近、単純な「yum update」を実行し、openldapが更新されました。その時(今から約3日前)以来、管理者は書き込み(ユーザーの追加または変更)を行うことができません。エラーは次のとおりです。

不十分なアクセス-親への書き込みアクセスがありません

...または、slapd.confファイルでの試行/エラーによっては、単純に次のようになることがあります。

不十分なアクセス

オンラインの投稿やドキュメントなどを読みながら、slapd.confファイルを(約500回)さまざまな設定で編集しました。現在のslapd.confファイルは次のようになります。

...
database        bdb
suffix          "dc=am5up,dc=com"
directory       /var/lib/ldap

index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber               eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub
index entryCSN                          eq
index entryUUID                         eq

access to *
          by self write
          by dn="cn=admin,dc=am5up,dc=com" write
          by group/groupOfUniqueNames/uniqueMember="cn=useradmins,ou=groups,dc=am5up,dc=com" write
          by * read
rootdn    "cn=admin,dc=am5up,dc=com"
rootpw    <hashed pwd>
...

私の仮定は、この行が間違っているということです:

group/groupOfUniqueNames/uniqueMember="cn=useradmins,ou=groups,dc=am5up,dc=com" write

...しかし、私は何十ものバリエーションを試しましたが、成功しませんでした。

誰か提案できますか?

大変感謝いたします。

1
MSF004

したがって、コメントによると、グループは次のとおりです。

dn:cn = useradmins、ou = group、dc = am5up、dc = com

cn:useradmins

gidnumber:10001

memberuid:mscot

オブジェクトクラス:posixGroup

memberuid:nhman

memberuid:taden

memberuid:japid

しかし、aclによると:

group/groupOfUniqueNames/uniqueMember = "cn = useradmins、ou = groups、dc = am5up、dc = com"による書き込み

グループには、objectClass groupOfUniqueNamesとuniqueMember(アクセスを許可する人)が必要です。しかし、上記のグループには何もありません。そのため、次の2つのことができます。

  • ObjectClass groupOfUniqueNamesとそのメンバーniqueMemberを追加すると、ACLは確実に機能します。

OR

  • 調査を行った結果、posixGroupにはこのような構文しかないことがわかりました。これを使用して、posixGroupメンバーへのアクセスを許可できます。あなたは次のようなことをしなければなりません:
access to *
           whatever you want
           by set="user/uid & [cn=useradmins]/memberuid" write
           by * none

"ser/uid"の場合、これは、memberuidsがメンバーの実際のuidである場合に適用されます。それ以外の場合は、使用している属性を入力します。

1