日本LDAPユーザ会

LDAPSEARCH(1)

名前

ldapsearch - LDAP 検索ツール

書式

ldapsearch [ -n ] [ -u ] [ -v ] [ -t[t] ] [ -T path ][ -F prefix ] [ -A ] [ -C ] [ -L[L[L]] ] [ -M[M] ] [ -S attribute ] [ -d debuglevel ] [ -f file ] [ -x ] [ -D binddn ] [ -W ] [ -w passwd ] [ -y passwdfile ] [ -H ldapuri ] [ -h ldaphost ] [ -p ldapport ] [ -b searchbase ] [ -s base|one|sub|children ] [ -a never|always|search|find ] [ -P 2|3 ] [ -e [!]ext[=extparam] ] [ -E [!]ext[=extparam] ] [ -l timelimit ] [ -z sizelimit ] [ -O security-properties ] [ -I ] [ -Q ] [ -U authcid ] [ -R realm ] [ -X authzid ] [ -Y mech ] [ -Z[Z] ] filter [ attrs… ]

説明

ldapsearch は、 ldap_search_ext (3) ライブラリ関数に対応するコマンドラインインタフェースである。

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

ldapsearch が1個以上のエントリを見つけると、attrs に指定した属性を返す。 attrs に * があれば、すべてのユーザ属性を返す。 attrs に + があれば、すべての運用属性を返す。 attrs を指定しなければ、すべてのユーザ属性を返す。 attrs に 1.1 だけを指定すると、どの属性も返さない。

オプション

-n
何が行われるのかを示すが、実際に検索しない。 デバッグを目的に -v とともに利用する。
-u
識別名(DN)のユーザフレンドリ名形式を出力に含める。
-v
冗長モードで実行する。標準出力に多くの診断情報を書き出す。
-t[t]
単一の -t は、取り出された印字できない値を1セットの一時ファイルに書き出す。 これは jpegPhoto あるいは audio のような文字でないデータを扱うのに有用。 二重に -t を指定すると、取り出したすべての値をファイルに書き出す。
-T path
指定したディレクトリ path に一時ファイルを書き出す(デフォルトは /var/tmp/)。
-F prefix
一時ファイルの URL 接頭辞を指定する。デフォルトは file://path/ で、path は /var/tmp/ または -T で指定したものである。
-A
属性名だけを取り出す(値は取り出さない)。 これは、ある属性がエントリに与えられているかを知りたいが、 具体的な値に関心のない場合に有用。
-C
紹介(referral)を(匿名ユーザで)追跡する。
-L
検索結果を LDAP データ交換フォーマット(LDAP Data Interchange Format: LDIF) で表示する(LDIF については ldif (5) を参照)。 単一の -L を指定すると出力を LDIFv1 に限定する。 2個の -L を指定するとコメントを出力しない。 3個の -L を指定すると LDIF バージョンを出力しない。 デフォルトでは LDIF の拡張バージョンを使う。
-M[M]
ManageDsaIT 制御を有効にする(referral エントリを通常のエントリと同様に扱う)。 -MM の指定は、サーバで ManageDsaIT 制御を利用できない場合に、 操作を実行しないようにする。
-S attribute
返されたエントリを属性 attribute の値を基にしてソートする。 デフォルトでは、返されたエントリはソートしない。 属性 attribute が長さ0の文字列("")である場合、 識別名の構成要素を使ってソートする。より詳しくは ldap_sort (3) を参照。通常 ldapsearch は、取り出した順に印字していくことに注意。オプション -S を指定すると、この振舞に反してすべてのエントリを取り出して ソートを行った後に印字します。
-d debuglevel
LDAP のデバッグレベルを debuglevel に設定する。 このオプションが効果を持つためには、 ldapsearch をマクロ LDAP_DEBUG 付きでコンパイルしておく必要がある。
-f file
ファイル file から一連の行を読み込み、各行について1つの LDAP 検索を行う。この場合、コマンドラインに与えたフィルタ条件 filter は、その中に最初に現れる %s をファイル file の各行で置換したパターンとして扱う。 その他の % 文字がパターン中に現れる場合はエラーとなる。 検索フィルタに % 文字を含めたい場合には、 この文字をエンコードした \25 を利用する(RFC 4515 を参照)。 ファイルの指定 file が1文字の - であった場合、行は標準入力から読み込む。
-x
SASL の代わりに簡易認証を使う。
-D binddn
LDAP ディレクトリにバインドする識別名 binddn を指定する。
-W
簡易認証のためのプロンプトを出す。 これはコマンドラインにパスワードを指定する代わりに利用する。
-w passwd
簡易認証のためのパスワード passwd を指定する。
-y passwdfile
簡易認証のためのパスワードにファイル passwdfile の内容すべてを利用する。
-H ldapuri
LDAP サーバを参照する URI を指定する。 URI 中にはプロトコル、ホスト、ポートのみを指定できる。 URI のリストは、各 URI を空白かカンマで区切って指定する。
-h ldaphost
LDAP サーバが動作しているホストを指定する。 このオプションは時代遅れなので -H の利用を推奨する。
-p ldapport
LDAP サーバに接続するための TCP ポートを指定する。 このオプションは時代遅れなので -H の利用を推奨する。
-b searchbase
検索の開始位置をデフォルトの代わりに searchbase とする。
-s base|one|sub|children
検索スコープに base , one , sub , children のいずれかを指定する。 base はベースオブジェクト検索、 one は1レベル検索、 sub はサブツリー検索、 children は子エントリ検索を意味する。 デフォルトは sub 。 注記:スコープ children は、LDAPv3 の機能拡張を必要とします。
-a never|always|search|find
エイリアスの実名参照をどのように行うかを指定する。このオプションには never , always , search , find のいずれかを指定し、それぞれ、エイリアスを実名参照しない、 常に実名参照する、検索で実名参照する、検索のためのベースオブジェクトを 探すときのみ実名参照する、ということを意味する。 デフォルトではエイリアスを別名参照しない。
-P 2|3
利用する LDAP プロトコルのバージョンを指定する。
-e [!]ext[=extparam]
-E [!]ext[=extparam]
操作に共通する拡張を -e で、検索固有の拡張を -E で指定する。 '!' を指定した場合には、サーバで拡張を受け付けられないときにエラーとなる。

操作に共通する拡張:

  [!]assert=<filter>          (an RFC 4515 Filter) 
  [!]authzid=<authzid>        ("dn:<dn>" or "u:<user>") 
  [!]manageDSAit 
  [!]noop 
  ppolicy 
  [!]postread[=<attrs>]       (a comma-separated attribute list) 
  [!]preread[=<attrs>]        (a comma-separated attribute list) 
  abandon, cancel (SIGINT sends abandon/cancel; not really controls) 

検索操作に固有の拡張:

  [!]domainScope                       (domain scope) 
  [!]mv=<filter>                       (matched values filter) 
  [!]pr=<size>[/prompt|noprompt]       (paged results/prompt) 
  [!]subentries[=true|false]           (subentries) 
  [!]sync=ro[/<cookie>]                (LDAP Sync refreshOnly) 
          rp[/<cookie>][/<slimit>]     (LDAP Sync refreshAndPersist) 

-l timelimit
検索の完了に最大 timelimit 秒を費やせることを指定する。 この時間制限に 0 (ゼロ)または none を指定した場合には無制限となる。指定できる時間制限の最大値は、 プロトコルによって許される最大の整数値となる。 このサーバが強制する最大時間制限はルートユーザだけが上書きできる。
-z sizelimit
検索で最大 sizelimit エントリを取り出せることを指定する。 この最大エントリ数に 0 (ゼロ)または none を指定した場合には無制限となる。指定できる時間制限の最大値は、 プロトコルによって許される最大の整数値となります。 このサーバが強制する最大エントリ数制限はルートユーザだけが上書きできる。
-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 機構を指定する。このオプションを指定しなければ、 サーバがサポートする最良の機構を選択する。
-Z[Z]
StartTLS (Transport Layer Security)拡張操作を発行する。 もし -ZZ が指定されたならば、コマンドはこの操作の成功を要求する。

出力フォーマット

エントリが1個以上見つかると、各エントリが次のように LDAP データ交換フォーマット ldif (5) で標準出力に書き出す。

version: 1 

# bjensen, example, net 
dn: uid=bjensen,dc=example,dc=net 
objectClass: person 
objectClass: dcObject 
uid: bjensen 
cn: Barbara Jensen 
sn: Jensen 
... 

オプション -t を指定すると、実際の値の場所に一時ファイルの URI が使われる。オプション -A が指定すると "属性名" の部分だけを 書き出す。

使用例

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

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

これは、surname (sn) が "smith" であるエントリについてサブツリー検索を行う( ldap.conf (5) に定義されているデフォルトの検索ベースや他のパラメータも用いる)。 属性 commonName, surname (sn), telephoneNumber の値が取り出され、 標準出力に印字する。2つのエントリが見つかったとすると、 出力は次のようなものになる。

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 

さらにコマンドの実行例を示す。

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

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

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

もう1つコマンドの実行例を示す。

ldapsearch -LLL -s one -b "c=US" "(o=University*)" o description 

これは、organizationName が University で始まるすべての組織について、 c=US レベルで1レベル検索を行う。属性 organizationName と 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 

... 

診断

エラーが起きなければ終了ステータスは 0 になる。 エラーが起きれば 0 でない終了ステータスが返り、 標準エラーに診断メッセージを書き出す。

関連項目

ldapadd (1), ldapdelete (1), ldapmodify (1), ldapmodrdn (1), ldap.conf (5), ldif (5), ldap (3), ldap_search_ext (3), ldap_sort (3)

作者

The OpenLDAP Project <http://www.openldap.org/>

謝辞

OpenLDAP は OpenLDAP プロジェクト (http://www.openldap.org/) が開発/管理している。 OpenLDAP はミシガン大学の LDAP 3.3 リリースより派生した。

和訳

稲地 稔 inachi@ldap-jp.org

 
2007 © LDAP Japn User Group, All Rights Reserved.  <お問い合わせ: staff @ ldap.jp>
R
ecent changes RSS feed