LPIC 301 ldapsearch

2021-06-18

概要

ldapsearch は LDAP サーバに接続してバインドした後に、 指定したパラメータを用いて検索する。
パラメータ filter は RFC 4515 に定義されている検索フィルタの文字列表現にしたがう必要がある。
このフィルタを与えなければ、デフォルトのフィルタ (objectClass=*) を指定したものとみなす。

オプション

-n:何が行われるのかを示すが、実際に検索しない。 デバッグを目的に -v とともに利用する。
-v:冗長モードで実行する。標準出力に多くの診断情報を書き出す。
-d debuglevel:LDAP のデバッグレベルを debuglevel に設定する。
-f file:ファイル file から一連の行を読み込み、各行について1つの LDAP 検索を行う。

-L:検索結果を LDAP データ交換フォーマットで表示する。
-S attribute:返されたエントリを属性 attribute の値を基にしてソートする。デフォルトでは、返されたエントリはソートしない。
-x:SASL の代わりに簡易認証を使う。
-D binddn:LDAP ディレクトリにバインドする識別名 binddn を指定する。
-b searchbase:検索の開始位置をデフォルトの代わりに searchbase とする。

-W:簡易認証のためのプロンプトを出す。 これはコマンドラインにパスワードを指定する代わりに利用する。
-w passwd:簡易認証のためのパスワード passwd を指定する。
-y passwdfile:簡易認証のためのパスワードにファイル passwdfile の内容すべてを利用する。

-H ldapuri:LDAP サーバを参照する URI を指定する。 URI 中にはプロトコル、ホスト、ポートのみを指定できる。 URI のリストは、各 URI を空白かカンマで区切って指定する。
-h ldaphost:LDAP サーバが動作しているホストを指定する。 このオプションは時代遅れなので -H の利用を推奨する。
-p ldapport:LDAP サーバに接続するための TCP ポートを指定する。 このオプションは時代遅れなので -H の利用を推奨する。

-s base|one|sub|children:検索スコープに base , one , sub , children のいずれかを指定する。
-P 2|3:利用する LDAP プロトコルのバージョンを指定する。
-O security-properties:SASL のセキュリティプロパティを指定する。

-I:SASL 対話モードにする。常にプロンプトを出す。 デフォルトでは必要なときにだけプロンプトを出す。
-Q:SASL 非対話モードにする。プロンプトは出さない。

-U authcid:SASL バインドのための認証 ID を指定する。 認証 ID の型式は実際に使用する SASL 機構に依存する。
-R realm:SASL バインドのための認証IDのレルム(realm)を指定する。 レルムの形式は実際に使用する SASL 機構に依存する。
-X authzid:SASL バインドのための要求認可IDを指定する。 authzid は次のフォーマットのいずれかである必要がある。 dn: <識別名> あるいは u: <ユーザ名>
-Y mech:認証に使う SASL 機構を指定する。このオプションを指定しなければ、 サーバがサポートする最良の機構を選択する。

-C:紹介(referral)を(匿名ユーザで)追跡する。
-M[M]:ManageDsaIT 制御を有効にする(referral エントリを通常のエントリと同様に扱う)。 -MM の指定は、サーバで ManageDsaIT 制御を利用できない場合に、 操作を実行しないようにする。

-Z[Z]:StartTLS (Transport Layer Security)拡張操作を発行する。 もし -ZZ が指定されたならば、コマンドはこの操作の成功を要求する。

使用例

コマンドを実行例を次に示す。

# ldapsearch -LLL "(sn=smith)" cn sn telephoneNumber

dn: uid=jts,dc=example,dc=com
cn: John Smith
cn: John T. Smith
sn: Smith
sn;lang-en: Smith
sn;lang-de: Schmidt
telephoneNumber: 1 555 123-4567

dn: uid=sss,dc=example,dc=com
cn: Steve Smith
cn: Steve S. Smith
sn: Smith
sn;lang-en: Smith
sn;lang-de: Schmidt
telephoneNumber: 1 555 765-4321

これはユーザIDが “xyz" であるエントリについてサブツリー検索をデフォルトの検索ベースを用いて行う。 エントリの DN のユーザフレンドリ形式が、DN 自体を含んだ行の後に出力され、 jpegPhoto と audio の値が取り出された後に一時ファイルに書き出す。 要求した属性のそれぞれについて、 1つの値を持つエントリが1つ見つかったとすると、 出力は次のようなものになる。

# ldapsearch -LLL -u -t "(uid=xyz)" jpegPhoto audio

dn: uid=xyz,dc=example,dc=com
ufn: xyz, example, com
audio:&lt; file:///tmp/ldapsearch-audio-a19924
jpegPhoto:&lt; file:///tmp/ldapsearch-jpegPhoto-a19924

これは、organizationName が University で始まるすべての組織について、 c=US レベルで1レベル検索を行う。属性 organizationName と description の値が取り出され、標準出力に印字する。出力は次のようなものになる。

# ldapsearch -LLL -s one -b "c=US" "(o=University*)" o description
dn: o=University of Alaska Fairbanks,c=US
o: University of Alaska Fairbanks
description: Preparing Alaska for a brave new yesterday
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: Warper of young minds

検索スコープ

ldapsearch “-s" のオプションで検索スコープが利用できる
スコープには"base , one , sub , children" のいずれかを指定する。

  • base はベースオブジェクトのみを検索、
  • sub はベースオブジェクト以下全てを検索(default)
  • one ははベースオブジェクトとその1つ下までが検索対象
  • children はベースオブジェクト以下全てを検索。但し、指定したDNを持つエントリは検索しない

-L のオプション

  • 単一の(-L)の場合は、LDIFv1 で出力
  • 2個の(-LL)を指定するとコメントを出力しない
  • 3個の(-L)を指定すると LDIF バージョンを出力しない

Linux,LPIC 30xLinux,LPIC301

Posted by admin