第10章 エントリーの検索および検索のチューニング
Web コンソール、コマンドライン、および LDAP 検索ユーティリティーを使用して、ディレクトリーエントリーを検索できます。グローバル、ユーザーレベル、匿名バインドに設定されたリソース制限を使用することで、検索パフォーマンスを向上させることができます。
10.1. コマンドライン (ldapsearch) を使用したエントリーの検索 リンクのコピーリンクがクリップボードにコピーされました!
ldapsearch
コマンドラインユーティリティーを使用して、ディレクトリーエントリーを検索できます。このユーティリティーは、指定した ID および認証情報を使用して指定のサーバーへの接続を開き、指定の検索フィルターに基づいてエントリーを見つけます。検索範囲には以下を含めることができます。
-
1 つのエントリー (
-s base
) -
エントリーの直接のサブエントリー (
-s one
) -
ツリーまたはサブツリー全体 (
-s sub
)
ldapsearch
ユーティリティーは、識別名の属性に基づいて、ディレクトリーエントリーを検索しません。識別名は、ディレクトリーエントリーの一意の識別子にすぎず、検索キーとして使用することはできません。代わりに、ldapsearch
は、エントリーに保存されている属性値のペアに基づいて、エントリーを検索します。たとえば、エントリーの識別名が uid=bjensen,ou=People,dc=example,dc=com
の場合は、dc:example
が属性として明示的に追加されていないかぎり、dc=example
の検索は、そのエントリーに一致しません。値のペアをこのエントリーに追加します。
ldapsearch ユーティリティーは、RFC 2849 仕様で定義されている LDIF 形式で結果を返します。
10.1.1. ldapsearch コマンドの形式 リンクのコピーリンクがクリップボードにコピーされました!
ldapsearch
コマンドは、次の形式を使用する必要があります。
ldapsearch [-x | -Y mechanism] [options] [search_filter] [list_of_attributes]
# ldapsearch [-x | -Y mechanism] [options] [search_filter] [list_of_attributes]
-x
または-Y
-x
(単純なバインド) または-Y
(SASL 機能) を使用して、接続のタイプを設定します。options
ldapsearch
コマンドラインオプション。オプションを使用する場合は、検索フィルターの前に指定します。search_filter
LDAP 検索フィルター。
-f
オプションを使用して、ファイルで検索フィルターを設定する場合は、検索フィルターを指定しないでください。list_of_attributes
空白文字で区切られた属性のリスト。属性のリストを指定すると、検索結果で返される属性の数が減ります。この属性のリストは、検索フィルターの後に表示されなければなりません。属性のリストを指定しない場合、検索は、操作属性を除いて、ディレクトリーに設定されたアクセス制御によって許可されているすべての属性の値を返します。
検索で操作属性を返す場合は、
ldapsearch
検索コマンドで明示的に指定する必要があります。オブジェクトのすべての操作属性を返すには、+
を使用します。明示的に指定された操作属性に加えて、通常の属性を取得するには、属性のリストでアスタリスク (*
) を使用します。アスタリスク文字をバックスラッシュ (
\*
) でエスケープする必要がある場合があることに注意してください。一致する DN のリストのみを取得するには、属性
1.1
を使用します。以下に例を示します。ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com \ -b "dc=example,dc=com" -x "(objectclass=inetorgperson)" 1.1
# ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com \ -b "dc=example,dc=com" -x "(objectclass=inetorgperson)" 1.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.1.2. 一般的に使用される ldapsearch オプション リンクのコピーリンクがクリップボードにコピーされました!
次の表に、最も一般的に使用される ldapsearch
ユーティリティーオプションを示します。指定された値にスペース文字が含まれている場合は、値を一重引用符または二重引用符で囲む必要があります。次に例を示します。
-b "cn=My Special Group,ou=groups,dc=example,dc=com"
OpenLDAP の ldapsearch
ユーティリティーは、デフォルトで SASL 接続を使用します。単純なバインドを実行するか、TLS を使用するには、-x
引数を使用して、SASL を無効にし、他の接続方法を許可します。
オプション | 説明 |
---|---|
-b |
検索の開始点を指定します - ベース識別名 (DN)。識別名はデータベースに存在する必要があることに注意してください。 |
-D |
サーバーへの認証に使用される DN を指定します。Directory Server は DN 値を認識する必要があり、DN にはエントリーを検索する権限が必要です。例: |
-H |
サーバーに接続するための LDAP URL を指定します。LDAP URL の形式は次のとおりです。 ldap[s]://hostname:[port]
ポート値の指定はオプションです。
このユーティリティーでは、スラッシュ ( ldapi://%2Ffull%2Fpath%2Fto%2Fslapd-example.socket
LDAPI の場合は、サーバーがリッスンしている LDAPI ソケットを表すファイルへのフルパスを指定します。URL を指定しなかった場合、 |
-h |
Directory Server がインストールされているマシンのホスト名または IP アドレスを指定します。たとえば、 注記
|
-p |
Directory Server が使用する TCP ポート番号を指定します。たとえば、 注記
|
-l |
検索要求が完了するまでの最大時間制限を秒単位で指定します。たとえば、 |
-s scope | 検索の範囲を指定します。次のスコープのいずれかを選択できます。
|
-W |
パスワードの入力を求めます。このオプションを指定しなかった場合、 注記 パスワードは他のユーザーのプロセスリストに表示され、シェルの履歴に保存されます。 |
-x | 単純なバインドを許可するためにデフォルトの SASL 接続を無効にします。 |
-Y SASL_mechanism |
認証に使用する SASL メカニズムを設定します。機能を設定しない場合、 |
-z number |
検索要求への応答で返すエントリーの最大数を設定します。この値は、ルート DN を使用して、バインドする際、 |
-f | 検索フィルターでファイルを指定します。 |
10.1.3. 特殊文字の使用 リンクのコピーリンクがクリップボードにコピーされました!
ldapsearch
ユーティリティーを使用する場合は、空白文字、アスタリスク (*
)、バックスラッシュ (\
) など、コマンドラインインタープリターにとって特別な意味を持つ文字を使用して、値を指定する必要がある場合があります。コマンドラインインタープリターに応じて、特殊文字を含む値を一重引用符 (' '
) または二重引用符 (" "
) で囲みます。以下に例を示します。
-D "cn=John Smith,ou=Product Development,dc=example,dc=com"
-D "cn=John Smith,ou=Product Development,dc=example,dc=com"
通常は、単一引用符 (' '
) を使用して、値を囲みます。シェル変数がある場合は、二重引用符 (" "
) を使用して、変数の補間を許可します。