Red Hat Training

A Red Hat training course is available for Red Hat Directory Server

9.7.3. ACI の表示: Get Effective Rights

きめ細かいアクセス制御を付与するため、または効率的なエントリー管理のために、エントリーに設定されたアクセス制御を表示する必要がある場合があります。get effective rights は、エントリー内の各属性に対するアクセス制御パーミッションセットを返す拡張 ldapsearch で、LDAP クライアントがサーバーのアクセス制御設定を実行できる操作を判別できるようにします。
アクセス制御情報は、属性のエントリーと権限の access: アクセス権限の 2 つのグループに分類されます。"rights for an entry(エントリーの右)は、その特定のエントリーに限定される変更または削除などの権限を意味します。"rights for an attribute" は、ディレクトリー全体でその属性のすべてのインスタンスにアクセスできることを意味します。
この種の詳細なアクセス制御は、以下の状況で必要になる場合があります。
  • 管理者は、特定のグループやユーザーがエントリーへのアクセスを許可し、他のグループを制限したりするなど、数分のアクセス制御に get effective rights コマンドを使用できます。たとえば、QA Managers グループのメンバーは、titlesalary などの属性の検索や読み取りに適したものを持つかもしれませんが、HR グループメンバーのみが変更または削除の権限を持ちます。
  • ユーザーは get effective rights オプションを使用して、個人エントリーで表示または変更可能な属性を決定できます。たとえば、ユーザーは homePostalAddresscn などの属性にアクセスできるはずですが、title および salary への読み取りアクセスのみを持つことができます。
-E スイッチを使用して実行した ldapsearch は、通常の検索結果の一部として特定のエントリーに対するアクセス制御を返します。以下の検索は、ユーザー Torris が個人エントリーに対して必要な権利を示しています。
ldapsearch -x -p 389 -h server.example.com -D "uid=tmorris,ou=people,dc=example,dc=com" -W -b "uid=tmorris,ou=people,dc=example,dc=com" -E !1.3.6.1.4.1.42.2.27.9.5.2:dn:uid=tmorris,ou=people,dc=example,dc=com "(objectClass=*)"

version: 1
dn: uid=tmorris,ou=People,dc=example,dc=com
givenName: Ted
sn: Morris
ou: Accounting
ou: People
l: Santa Clara
manager: uid=dmiller,ou=People,dc=example,dc=com
roomNumber: 4117
mail: tmorris@example.com
facsimileTelephoneNumber: +1 408 555 5409
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
uid: tmorris
cn: Ted Morris
userPassword: {SSHA}bz0uCmHZM5b357zwrCUCJs1IOHtMD6yqPyhxBA==
entryLevelRights: vadn
attributeLevelRights: givenName:rsc, sn:rsc, ou:rsc, l:rscow, manager:rsc, roomNumber:rscwo, mail:rscwo, facsimileTelephoneNumber:rscwo, objectClass:rsc, uid:rsc, cn:rsc, userPassword:wo
この例では、Ted Morris には entryLevelRights の結果で示されているように、独自のエントリーで DN を追加、表示、削除、名前を変更できる権利があります。attributeLevelRights の結果にあるように、場所(l)属性を読み取り、検索、比較、self-modify または self-delete 権限のみを読み取り、検索、自己削除することができます。
デフォルトでは、有効な権限情報は、値のないエントリーやエントリーに存在しないエントリーの属性に対して返されません。たとえば、userPassword の値が削除された場合、セルフサービスの権限は許可されていても、userPassword の実効権限は返されません。同様に、street 属性が読み取り、比較、および検索権限と共に追加されると、street: rscattributeLevelRights の結果に表示されます。
存在しない属性や運用属性など、通常は検索結果に含まれていない属性に対する権限を返すことができます。アスタリスク(*)を使用すると、存在しない属性など、エントリーのすべての属性に対する権限が返されます。
ldapsearch -x -E !1.3.6.1.4.1.42.2.27.9.5.2:dn:uid=scarter,ou=people,dc=example,dc=com "(objectclass=*)" "*"
プラス記号(+)を使用すると、エントリーの動作属性が返されますが、通常は ldapsearch アスタリスク(*)で返されません。以下に例を示します。
ldapsearch -x -E !1.3.6.1.4.1.42.2.27.9.5.2:dn:uid=scarter,ou=people,dc=example,dc=com "(objectclass=*)" "+"
アスタリスク(*)およびプラス記号(+)を使用して、エントリーのすべての属性を返すことができます。
既存の属性に対する実効権限は、Directory Server Console にも表示されます。ユーザーエントリーの Advanced Properties エディターを開き、Show effective rights チェックボックスを選択します。これにより、メインウィンドウに一覧表示されている属性の横に属性レベルの権限(r s、c、w、oが表示され、画面下部にあるエントリーの DN の下にエントリーレベルの権限(v,a d、d、nが表示されます。