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/opsuid が 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: devadmins グループに入っている人を出します。
$ 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・メール・認証))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
すべてのレベルが、ゴールド以上のプランで遊べます。