ldapsearchの使い方
利用するテスト用のLDAPサーバ
- 2022/07/21時点のデータでテスト
- FreeIPAのhttps://www.freeipa.org/page/Demo
- hostname: ipa.demo1.freeipa.org
- user: uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org
- password: Secret123
接続テスト
接続に成功した場合は以下のようなレスポンスが返って来ます
-h 接続するホスト名を指定
- -D 認証情報を指定
- -w パスワードを指定
- -wの時はパスワードを指定する必要があるが、-Wにすると後で入力する対話モードになる
$ ldapsearch -h ipa.demo1.freeipa.org -D 'uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org' -w 'Secret123' # extended LDIF # # LDAPv3 # base <> (default) with scope subtree # filter: (objectclass=*) # requesting: ALL # # compat, demo1.freeipa.org dn: cn=compat,dc=demo1,dc=freeipa,dc=org objectClass: extensibleObject cn: compat # users, compat, demo1.freeipa.org dn: cn=users,cn=compat,dc=demo1,dc=freeipa,dc=org objectClass: extensibleObject cn: users # helpdesk, users, compat, demo1.freeipa.org dn: uid=helpdesk,cn=users,cn=compat,dc=demo1,dc=freeipa,dc=org objectClass: posixAccount objectClass: ipaOverrideTarget objectClass: top gecos: Test Helpdesk cn: Test Helpdesk uidNumber: 613800004 gidNumber: 613800004 loginShell: /bin/sh homeDirectory: /home/helpdesk ipaAnchorUUID:: OlNJRDpTLTEtNS0yMS0xMDkyMTUyMjQ1LTI4MDExNTgzMDAtMzk4MzA2Njc3LT EwMDQ= uid: helpdesk # manager, users, compat, demo1.freeipa.org dn: uid=manager,cn=users,cn=compat,dc=demo1,dc=freeipa,dc=org objectClass: posixAccount objectClass: ipaOverrideTarget objectClass: top gecos: Test Manager cn: Test Manager uidNumber: 613800001 gidNumber: 613800001 loginShell: /bin/sh homeDirectory: /home/manager ipaAnchorUUID:: OlNJRDpTLTEtNS0yMS0xMDkyMTUyMjQ1LTI4MDExNTgzMDAtMzk4MzA2Njc3LT EwMDE= uid: manager 以下省略 # search result search: 2 result: 0 Success # numResponses: 1865 # numEntries: 1864
- パスワードが間違っている場合はエラーの場合以下のような表示が出ます
ldap_bind: Invalid credentials (49)
ldapsearchで検索
- 検索に利用できるフィルターの条件は以下を参考
単一項目で検索
- objectClass: posixAccountと一致するデータを検索
$ ldapsearch -h ipa.demo1.freeipa.org -D 'uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org' -w 'Secret123' -b "dc=demo1,dc=freeipa,dc=org" "(objectClass=posixAccount)"
- 12件のデータが返ってくる
# search result search: 2 result: 0 Success # numResponses: 13 # numEntries: 12
OR検索
- objectClass: posixAccountと一致するデータを検索
$ ldapsearch -h ipa.demo1.freeipa.org -D 'uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org' -w 'Secret123' -b "dc=demo1,dc=freeipa,dc=org" "(|(uid=manager)(uid=admin))"
- 6件のデータが返ってくる
# search result search: 2 result: 0 Success # numResponses: 7 # numEntries: 6
AND検索
- uid: manager and cn: Test Manager
$ ldapsearch -h ipa.demo1.freeipa.org -D 'uid=admin,cn=users,cn=accounts,dc=demo1,dc=freeipa,dc=org' -w 'Secret123' -b "dc=demo1,dc=freeipa,dc=org" "(&(uid=manager)(cn=Test Manager))"
# search result search: 2 result: 0 Success # numResponses: 4 # numEntries: 3