ldapsearch の使い方

LDAP の名簿を引く

書き方

ldapsearch -x -H ldap://ホスト -b ベースDN '(uid=名前)' [属性...]
ldapsearch -x -LLL …(コメントなし)
ldapsearch -x -D 管理者DN -W …

-x はパスワードで入る単純な認証(付けないと Kerberos を試して失敗します)。-b はどこから下を探すか、フィルターは (属性=値)、(&(…)(…)) で「かつ」。/etc/openldap/ldap.conf の BASE と URI に書けば -H と -b を省けます。

よく使うオプション

オプション意味
-xパスワードで入る単純な認証を使う(付けないと SASL を試す)
-H ldap://ホストつなぐ LDAP サーバー
-b ベースDNどこから下を探すか
-D 名前 -Wその名前で入り、パスワードを聞かれる
-LLLコメントや版の行を出さない
(属性=値)探す条件((&(…)(…)) で「かつ」、(|(…)(…)) で「または」)

例

$ ldapsearch -x -LLL -H ldap://ldap.example.lan -b dc=example,dc=lan '(uid=ops)' uid uidNumber homeDirectorydn: uid=ops,ou=people,dc=example,dc=lan
uid: ops
uidNumber: 10001
homeDirectory: /home/ops

uid が ops の利用者を探し、名前・番号・ホームだけを出します。

$ ldapsearch -x -LLL -b ou=groups,dc=example,dc=lan '(cn=admins)' memberUiddn: cn=admins,ou=groups,dc=example,dc=lan
memberUid: ops
memberUid: dev

admins グループに入っている人を出します。

$ ldapsearch -x -LLL '(&(objectClass=posixAccount)(loginShell=/bin/bash))' uid

「かつ」で条件を重ねます。/etc/openldap/ldap.conf に URI と BASE があれば、-H と -b は省けます。

よくある間違い・注意

  • -x を付け忘れると SASL で入ろうとして、SASL(-4): no mechanism available などで失敗します。
  • フィルターに ( ) や * が入るので、'…' で囲みます。

実際に打って練習する

Linux レベル2 コースの Lv91「名簿を引く ldapsearch」で覚えます(第7章 伝令と名簿(DHCP・メール・認証))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

すべてのレベルが、ゴールド以上のプランで遊べます。

Linux サーバー構築のコマンド一覧(LinuC レベル2 の範囲)へ戻る