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 だけを指定すると、どの属性も返さない。
[!]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)
エントリが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