8.3. Get Effective Rights 検索の一般的なシナリオ
次の例は、Get Effective Rights 検索をいつ、どのように使用できるかの一般的なシナリオを示しています。
8.3.1. Get Effective Rights 検索の一般的な例 リンクのコピーリンクがクリップボードにコピーされました!
以下は、Get Effective Rights (GER) 検索を使用する必要がある最も一般的なシナリオです。
個人の権利を確認します。ユーザー A が個人エントリーの権限を確認します。たとえば、Ted Morris は自分のエントリーに対して自分が持つ権限を確認します。
例8.1 個人の権限の確認 (ユーザー A からユーザー A)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
-bオプションにはリクエスターの DN も含まれています。別のユーザーに対する権限を確認します。たとえば、Ted Morris はマネージャーであり、部下の 1 人である Dave Miller のエントリーを確認する必要があります。
例8.2 別のユーザーに対する権限の確認 (ユーザー A からユーザー B)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Ted Morris は Dave Miller のエントリーに対して、すべての属性の読み取り、検索、比較、変更、削除を実行するための権限を持っています。
ディレクトリーマネージャーとして、あるユーザーが別のユーザーのエントリーに対してす持つ権限を確認します。たとえば、ディレクトリーマネージャーは、Jane Smith がマネージャーとして部下である Ted Morris のエントリーに対して持つ権限を確認します。
例8.3 ディレクトリーマネージャーとして、あるユーザーが別のユーザーに対して持つ権限を確認
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ユーザーが権限を持っていない場合、結果には不十分なアクセス権を示すエラーが表示されます。
例8.4 エントリーに対する権限がない場合
ldapsearch -p 389 -h server.example.com -D "uid=dmiller,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=*)" ldap_search: Insufficient access ldap_search: additional info: get-effective-rights: requester has no g permission on the entry
# ldapsearch -p 389 -h server.example.com -D "uid=dmiller,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=*)" ldap_search: Insufficient access ldap_search: additional info: get-effective-rights: requester has no g permission on the entryCopy to Clipboard Copied! Toggle word wrap Toggle overflow 自分以外のユーザーが自分のエントリーに対して持つ権限を確認します。たとえば Ted Morris は、Dave Miller が Ted Morris のエントリーに対して持つ権限を確認します。
例8.5 自分以外のユーザーが自分のエントリーに対して持つ権限を確認する場合
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、Dave Miller は、エントリーの DN を表示し、
ou、givenName、l、およびその他の属性の読み取り、検索、比較を実行する権限を持っています。userPassword属性に対する権限はありません。
8.3.2. 存在しない属性に対する Get Effective Rights 検索の例 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、エントリーの属性には値がありません。Get Effective Rights (GER) 検索でアスタリスク (*) を使用すると、そのエントリーで使用できるすべての属性が、エントリーに設定されていない属性も含めて返されます。
例8.6 エントリーのすべての属性に対する権限の確認
この例では、secretary 属性は設定されていませんが、それでも GER 検索結果で確認できます。
8.3.3. 特定の属性またはオブジェクトクラスに対する Get Effective Rights 検索の例 リンクのコピーリンクがクリップボードにコピーされました!
このセクションの例は、エントリーのオブジェクトクラスに属する特定の属性、属性セット、およびすべての属性に対する権限を検索する方法を示しています。
Get Effective Rights (GER) 検索結果に、エントリーの特定の属性が一覧表示されます。以下に例を示します。
例8.7 特定の属性の Get Effective Rights 検索結果
Copy to Clipboard Copied! Toggle word wrap Toggle overflow attribute@objectClass 形式を使用した、エントリーのオブジェクトクラスにおける特定の属性の GER 検索。リクエスターは、ディレクトリーマネージャーである必要があります。
例8.8 オブジェクトクラスの特定の属性に対する Get Effective Rights 検索結果
Copy to Clipboard Copied! Toggle word wrap Toggle overflow *@objectClass の形式でアスタリスク (
*) を使用して、オブジェクトクラスのすべての属性を返すことができます。検索結果には、存在しない属性も含まれます。
8.3.4. 存在しないエントリーの Get Effective Rights 検索の例 リンクのコピーリンクがクリップボードにコピーされました!
この例は、ユーザーのまだ存在しないエントリーに対して、特定のユーザーが持つ権限を確認する方法を示しています。この場合、サーバーによりサブツリー内にテンプレートエントリーが生成され、それに対して Get Effective Rights (GER) を使用できます。存在しないエントリーをチェックする場合、Get Effective Rights (GER) 検索は、指定したオブジェクトクラスを使用して、エントリーのすべての属性を持つテンプレートエントリーを生成することができます。
サーバーがテンプレートエントリーを作成すると、オブジェクトクラス定義の最初の MUST 属性を使用して RDN 属性を作成します。MUST 属性が存在しない場合、サーバーは MAY 属性を使用します。@objectclass:rdn_attribute の形式で RDN 値をオブジェクトクラスに渡して指定します。
たとえば、RDN として uidNumber を持つ、存在しない POSIX エントリーの scarter の権利を確認するには、以下を実行します。
例8.9 存在しないエントリーに対する権限の確認
ldapsearch -D "cn=Directory Manager" -W -b "ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" @posixaccount:uidnumber dn: uidNumber=template_posixaccount_objectclass,ou=people,dc=example,dc=com entryLevelRights: v attributeLevelRights: description:rsc, gecos:rsc, loginShell:rsc, userPassword:rsc, objectClass:rsc, homeDirectory:rsc, gidNumber:rsc, uidNumber:rsc, uid:rsc, cn:rsc
# ldapsearch -D "cn=Directory Manager" -W -b "ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" @posixaccount:uidnumber
dn: uidNumber=template_posixaccount_objectclass,ou=people,dc=example,dc=com
entryLevelRights: v
attributeLevelRights: description:rsc, gecos:rsc, loginShell:rsc, userPassword:rsc, objectClass:rsc, homeDirectory:rsc, gidNumber:rsc, uidNumber:rsc, uid:rsc, cn:rsc
8.3.5. 操作属性の Get Effective Rights 検索の例 リンクのコピーリンクがクリップボードにコピーされました!
ldapsearch コマンドは操作属性を返しません。検索するには、プラス記号 (+) を使用します。+ を使用すると、エントリーに対して使用できる操作属性のみが返されます。
例8.10 操作属性の検索
ldapsearch -D "cn=Directory Manager" -W -x -b "uid=scarter,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" "+" dn: uid=scarter,ou=People,dc=example,dc=com entryLevelRights: vadn attributeLevelRights: nsICQStatusText:rscwo, passwordGraceUserTime:rscwo, pwdGraceUserTime:rscwo, nsYIMStatusText:rscwo, modifyTimestamp:rscwo, passwordExpWarned:rscwo, pwdExpirationWarned:rscwo, entrydn:rscwo, aci:rscwo, nsSizeLimit:rscwo, nsAccountLock:rscwo, passwordExpirationTime:rscwo, entryid:rscwo, nsSchemaCSN:rscwo, nsRole:rscwo, retryCountResetTime:rscwo, ldapSchemas:rscwo, nsAIMStatusText:rscwo, copiedFrom:rscwo, nsICQStatusGraphic:rscwo, nsUniqueId:rscwo, creatorsName:rscwo, passwordRetryCount:rscwo, dncomp:rscwo, nsTimeLimit:rscwo, passwordHistory:rscwo, pwdHistory:rscwo, nscpEntryDN:rscwo, subschemaSubentry:rscwo, nsYIMStatusGraphic:rscwo, hasSubordinates:rscwo, pwdpolicysubentry:rscwo, nsAIMStatusGraphic:rscwo, nsRoleDN:rscwo, createTimestamp:rscwo, accountUnlockTime:rscwo, copyingFrom:rscwo, nsLookThroughLimit:rscwo, nsds5ReplConflict:rscwo, modifiersName:rscwo, parentid:rscwo, passwordAllowChangeTime:rscwo, nsBackendSuffix:rscwo, nsIdleTimeout:rscwo, ldapSyntaxes:rscwo, numSubordinates:rscwo
# ldapsearch -D "cn=Directory Manager" -W -x -b "uid=scarter,ou=people,dc=example,dc=com" -E '!1.3.6.1.4.1.42.2.27.9.5.2=:dn:uid=scarter,ou=people,dc=example,dc=com' "(objectclass=*)" "+"
dn: uid=scarter,ou=People,dc=example,dc=com
entryLevelRights: vadn
attributeLevelRights: nsICQStatusText:rscwo, passwordGraceUserTime:rscwo, pwdGraceUserTime:rscwo, nsYIMStatusText:rscwo, modifyTimestamp:rscwo, passwordExpWarned:rscwo, pwdExpirationWarned:rscwo, entrydn:rscwo, aci:rscwo, nsSizeLimit:rscwo, nsAccountLock:rscwo, passwordExpirationTime:rscwo, entryid:rscwo, nsSchemaCSN:rscwo, nsRole:rscwo, retryCountResetTime:rscwo, ldapSchemas:rscwo, nsAIMStatusText:rscwo, copiedFrom:rscwo, nsICQStatusGraphic:rscwo, nsUniqueId:rscwo, creatorsName:rscwo, passwordRetryCount:rscwo, dncomp:rscwo, nsTimeLimit:rscwo, passwordHistory:rscwo, pwdHistory:rscwo, nscpEntryDN:rscwo, subschemaSubentry:rscwo, nsYIMStatusGraphic:rscwo, hasSubordinates:rscwo, pwdpolicysubentry:rscwo, nsAIMStatusGraphic:rscwo, nsRoleDN:rscwo, createTimestamp:rscwo, accountUnlockTime:rscwo, copyingFrom:rscwo, nsLookThroughLimit:rscwo, nsds5ReplConflict:rscwo, modifiersName:rscwo, parentid:rscwo, passwordAllowChangeTime:rscwo, nsBackendSuffix:rscwo, nsIdleTimeout:rscwo, ldapSyntaxes:rscwo, numSubordinates:rscwo
8.3.6. Get Effective Rights 結果とアクセス制御ルールの例 リンクのコピーリンクがクリップボードにコピーされました!
有効なアクセス制御リスト (ACL) は、ユーザーが持つ Get Access Rights (GER) を定義します。
例8.11 アクセス制御リスト
この例では、ACL に dc=example,dc=com サブツリーは含まれていません。そのため、GER 検索結果には、ユーザーが dc=example,dc=com エントリーに対する権限を持っていないことが示されます。
例8.12 ACL が設定されていない場合の GER 検索結果
結果を表示するには、Directory Manager である必要があります。それ以外の場合、結果は空白になります。