LDAP 検索コマンド行ユーティリティー
ldapsearch [-a deref] [-A] [-b searchbase] [-B] [-c pattern] [-C charset]
[-d debuglevel][-D binddn] [-e] [-f file] [-F sep] [-G realm] [-h ldaphost]
[-i file][-j limit] [-J limit] [-k] [-K keyfile]
[-l timelimit] [-L] [-m mechanism] [-M] [-n] [-N certificatename]
[-o attr_type] [-O maxhops] [-p ldapport] [-P keyfilepw] [-q pagesize]
[-R] [-s scope ] [-t] [-T seconds] [-U username] [-v] [-V version]
[-w passwd | ?] [-x] [-y proxydn] [-Y] [-z sizelimit] [-Z]
filter [-9 p] [-9 s] [attrs…]
ldapsearch は、 ldap_search アプリケーション・プログラミング・インターフェース (API) への コマンド行インターフェースです。
ldapsearch は LDAP サーバーへの接続を開き、 バインドし、フィルターを使用して検索を行います。フィルターは、LDAP フィルターのストリング表記 に準拠している必要があります (詳しくは、Directory Server APIs の ldap_search を参照してください)。
ldapsearch により 1 つまたは複数の項目が見つかると、 attrs で指定された属性がリトリーブされ、項目および値は標準出力に書き込まれます。 attrs がリストされていない場合、すべての属性が戻されます。
ldapsearch の構文ヘルプを表示するには、 ldapsearch -? を入力します。
(cn=*Z)
(cn=*Z*)
(cn=Z*)
(cn=*Z*)
(cn~=A)
(cn>=A)
(cn<=B)
ユーティリティーがキー・データベースを探し出すことができない場合には、 デフォルトのトラステッド認証局ルートのハードコーディングされたセットが使われます。キー・データベース・ファイルには、一般に、 クライアントが信頼している認証局 (CA) の 1 つまたは複数の証明書が含まれています。 これらのタイプの X.509 証明書は、トラステッド・ルートとも呼ばれています。
このパラメーターを使用すると、-Z スイッチを使用できるようになります。 IBM® i 上のディレクトリー・サーバー では、-Z を使用して -K または -N を使用しない場合、ディレクトリー・サービス・クライアント・アプリケーション ID に 関連した証明が使用されます。
IBM i 上のディレクトリー・サーバー では、-Z を使用して -K または -N を使用しない場合、ディレクトリー・サービス・クライアント・アプリケーション ID に 関連した証明が使用されます。
-o sn -o -givenname
したがって、ソート・パラメーターの 構文は以下のようになります。
[-]<attribute name>[:<matching rule OID>]
ここで
ldapsearch 操作はデフォルトでは、戻された結果をソートしません。
これらのパラメーターはクライアントに限定リソースがあるとき、 またクライアントが低帯域幅の接続で CAN されているときに便利です。一般に、 これにより、検索要求からデータが戻される速度をコントロールすることができます。すべての結果を一度に受信する代わりに、(ページごとに) 幾つかの項目で 受信することができます。さらに、それぞれのページ要求間の遅延の継続時間を制御して クライアントに結果をプロセスする時間を与えることができます。
-q 25 -T 15
-v (冗長) パラメーターを指定した場合、たとえば、30 total entries have been returned. (合計 30 の項目が戻されました。) のように、 ldapsearch は、サーバーから戻されるそれぞれの項目のページごとに、 それまで幾つの項目が戻されたかをリストします。
複数の -q パラメーターが 使用可能になるので、単一の検索操作中を通して、異なるページ・サイズを 指定することができます。 以下の例では、最初のページは 15 項目、2 番目のページは 20 項目、そして 3 番目の パラメーターがページングされた結果/検索操作を終了します。
-q 15 -q 20 -q 0
以下の例では、最初のページは 15 項目、残りのすべてのページは 20 項目 で、最後の指定 -q 値で検索操作が完了するまで続きます。
-q 15 -q 20
ldapsearch 操作は、デフォルトでは、単一の要求ですべての項目を戻します。デフォルトの ldapsearch 操作では、ページングは行われません。
<filter> ::='('<filtercomp>')'
<filtercomp> ::= <and>|<or>|<not>|<simple>
<and> ::= '&' <filterlist>
<or> ::= '|' <filterlist>
<not> ::= '!' <filter>
<filterlist> ::= <filter>|<filter><filterlist>
<simple> ::= <attributetype><filtertype>
<attributevalue>
<filtertype> ::= '='|'~='|'<='|'>='
'~=' 構成は、近似マッチングの指定のために使用されています。 <attributetype> および <attributevalue> の表記については、RFC 2252, LDAP V3 Attribute Syntax Definitions に説明されています。 さらに、filtertype が '=' の場合、<attributevalue> は、属性存在テストを行うときは単一の * でかまいませんが、サブストリング・マッチングを行うときには、テキストとアスタリスク (*) がその中に散在していてもかまいません。
たとえば、フィルター "mail=*" はメール属性のある項目を検出します。フィルター "mail=*@student.of.life.edu" では、指定されたストリングで終わるメール属性のある項目を検出します。フィルターに 括弧を書き込むには、エスケープ文字として、円記号 (¥) 文字を入れてください。
許容されるフィルターに関する完全な説明は、"RFC 2254, A String Representation of LDAP Search Filters" を参照してください。
1 つ以上の項目が検出された場合、各項目は次の形式で標準出力に書き込 まれます。
識別名 (DN)
attributename=value
attributename=value
attributename=value
…
複数の項目は、それぞれ 1 つのブランク行で区切られます。 分離文字の指定に -F オプションが使用されている場合、 ブランク行が '=' 文字の代わりに使用されます。-t オプションを指定した場合は、 実際の値の代わりに一時ファイルの名前が使用されます。 -A オプションが与えられている場合には、 "attributename" の部分のみが書き込まれます。
ldapsearch "cn=john doe" cn telephoneNumber
は、"john doe" という commonName を持つ項目を見つけるために、
サブツリー検索を実行します (デフォルトの検索ベースを使用)。
commonName および telephoneNumber の値が検索され、
標準出力にプリントされます。2 つの項目が検出された場合、
出力は次のようになります。
cn=John E Doe, ou="College of Literature, Science, and the Arts",
ou=Students, ou=People, o=University of Higher Learning, c=US
cn=John Doe
cn=John Edward Doe
cn=John E Doe 1
cn=John E Doe
telephoneNumber=+1 313 555-5432
cn=John B Doe, ou=Information Technology Division,
ou=Faculty and Staff, ou=People, o=University of Higher Learning, c=US
cn=John Doe
cn=John B Doe 1
cn=John B Doe
telephoneNumber=+1 313 555-1111
次のコマンド:
ldapsearch -t "uid=jed" jpegPhoto audio
は、"jed" というユーザー ID を持つ項目を見つけるために、 デフォルトの検索ベースを使用してサブツリー検索を実行します。 jpegPhoto と audio の値が取り出されて、一時ファイルに書き込まれます。 要求された各属性について 1 つずつ値を持つ項目が 1 つ見つかった場合、 出力は次のようになります。
cn=John E Doe, ou=Information Technology Division,
ou=Faculty and Staff,
ou=People, o=University of Higher Learning, c=US
audio=/tmp/ldapsearch-audio-a19924
jpegPhoto=/tmp/ldapsearch-jpegPhoto-a19924
次のコマンド:
ldapsearch -L -s one -b "c=US" "o=university*" o description
は、university で始まる organizationName を持つすべての組織を検出する 1 レベル検索を行います。 検索結果は LDIF 形式 (『LDAP データ交換形式』を参照してください。) で表示されます。organizationName と記述属性値が検索され、標準出力にプリントされ、 以下のような出力になります。
dn: o=University of Alaska Fairbanks, c=US
o: University of Alaska Fairbanks
description: Preparing Alaska for a brave new tomorrow
description: leaf node only
dn: o=University of Colorado at Boulder, c=US
o: University of Colorado at Boulder
description: No personnel information
description: Institution of education and research
dn: o=University of Colorado at Denver, c=US
o: University of Colorado at Denver
o: UCD
o: CU/Denver
o: CU-Denver
description: Institute for Higher Learning and Research
dn: o=University of Florida, c=US
o: University of Florida
o: UFl
description: Shaper of young minds
…
次のコマンド:
ldapsearch -b "c=US" -o ibm-slapdDN "objectclass=person" ibm-slapdDN
は、c=US レベルですべての人々を検出するサブツリー・レベルの検索を行います。この特別な 属性 (ibm-slapdDN) は、ソートする検索のために使用すると、 検索結果を識別名 (DN) のストリング表記でソートします。出力は次のようになります。
cn=Al Edwards,ou=Widget Division,ou=Austin,o=IBM,c=US
cn=Al Garcia,ou=Home Entertainment,ou=Austin,o=IBM,c=US
cn=Amy Nguyen,ou=In Flight Systems,ou=Austin,o=IBM,c=US
cn=Arthur Edwards,ou=Widget Division,ou=Austin,o=IBM,c=US
cn=Becky Garcia,ou=In Flight Systems,ou=Austin,o=IBM,c=US
cn=Ben Catu,ou=In Flight Systems,ou=Austin,o=IBM,c=US
cn=Ben Garcia Jr,ou=Home Entertainment,ou=Austin,o=IBM,c=US
cn=Bill Keller Jr.,ou=In Flight Systems,ou=Austin,o=IBM,c=US
cn=Bob Campbell,ou=In Flight Systems,ou=Austin,o=IBM,c=US
次のコマンド:
ldapsearch –h hostname –o sn –b "o=ibm,c=us" "title=engineer"
は、IBM 従業員ディレクトリーにある役職が "engineer" であるすべての項目を、結果を姓でソートして戻します。
次のコマンド:
ldapsearch –h hostname –o -sn –o cn –b "o=ibm,c=us" "title=engineer"
は、IBM 従業員ディレクトリーにある 役職が "engineer" であるすべての項目を、結果を姓で (降順) し、それから通称で (昇順) ソートして戻します。
次のコマンド:
ldapsearch –h hostname –q 5 –T 3 –b o=ibm,c=us "title=engineer"
は、IBM 従業員ディレクトリーにある 役職が "engineer" であるすべての項目を、ページングごとに 5 項目、ページ間 3 秒の遅延で戻します。
次の例は、参照オブジェクトが含まれている場合の検索を示しています。 Directory Server LDAP ディレクトリーは、次のものだけを格納している限り、参照オブジェクトを格納することができます。
'System_A' には以下の参照項目が置かれていると想定します。
dn: cn=Barb Jensen, ou=Rochester, o=Big Company, c=US
ref: ldap://System_B:389/cn=Barb Jensen,
ou=Rochester, o=Big Company, c=US
objectclass: referral
この項目に関連したすべての属性は、'System_B' にあります。
System_B には項目が 1 つ含まれています。
dn: cn=Barb Jensen, ou=Rochester, o=Big Company, c=US
cn: Barb Jensen
objectclass: organizationalPerson
sn: Jensen
telephonenumber: (800) 555 1212
クライアントが 'System_A' への要求を発行した場合、 System_A 上の LDAP サーバーは、次の URL でクライアントに応答します。
ldap://System_B:389/cn=Barb Jensen,
ou=Rochester, o=Big Company, c=US
クライアントはこの情報を使用して、System_B に対する要求を発行します。 System_A の項目に、dn、objectclass、 および ref 以外の属性も含まれている場合は、 サーバーはそれらの属性を無視します (-R フラグを指定して 追跡参照をしないという指示をしない場合)。
クライアントは、サーバーから参照応答を受け取ると、 今度は戻された URL の参照先であるサーバーに対して、再度要求を発行します。 新規の要求には、元の要求と同じ有効範囲があります。この検索の結果は、検索の有効範囲 (-b) に指定する値によって異なります。
-s base を次のように指定したとします。
ldapsearch -h System_A -b 'ou=Rochester, o=Big Company, c=US'
-s base 'sn=Jensen'
検索の結果、System_A と System_B の両方の 'ou=Rochester, o=Big Company, c=US' の中にあって、 'sn=Jensen' であるすべての項目のすべての属性が戻されます。
-s sub を次のように指定したとします。
ldapsearch -s sub "cn=John"
サーバーはすべての接尾部を検索して、「cn=John」があるすべての項目を 戻します。これは、ヌル・ベースのサブツリー検索と呼ばれます。検索 ベースとして、異なる接尾部ごとに複数の検索を実行するのではなく、ディレクトリー 全体が 1 つの検索操作で検索されます。このタイプの検索操作では、ディレクトリー 全体 (すべての接尾部) が検索されるために、時間が長くなり、システム・リソース の消費も多くなります。
-s sub を次のように指定したとします。
ldapsearch -h System_A -b 'ou=Rochester, o=Big Company, c=US'
-s sub 'sn=Jensen'
検索の結果、System_A と System_B の両方の 'ou=Rochester, o=Big Company, c=US' の中またはその下位にあって、 'sn=Jensen' であるすべての項目のすべての属性が戻されます。
-s one を次のように指定したとします。
ldapsearch -h System_A -b 'ou=Rochester, o=Big Company, c=US'
-s one 'sn=Jensen'
検索の結果、どちらのシステムについても項目は戻されません。 代わりに、サーバーは参照 URL をクライアントに戻します。
ldap://System_B:389/cn=Barb Jensen,
ou=Rochester, o=Big Company, c=US
クライアントは次の要求を実行依頼します。
ldapsearch -h System_B -b 'ou=Rochester, o=Big Company, c=US'
-s one 'sn=Jensen'
これも結果を出しませんが、それは項目
dn: cn=Barb Jensen, ou=Rochester, o=Big Company, c=US
resides at
ou=Rochester, o=Big Company, c=US
-s one による検索では、以下のすぐ下のレベルでの項目が検出されます。
ou=Rochester, o=Big Company, c=US
エラーがない場合は、戻り状況は 0 です。 エラーがあった場合は、ゼロ以外の戻り状況が発生し、標準エラーに診断メッセージが書き込まれます。