skydum

個人的な作業記録とか備忘録代わりのメモ

ldapsearchの使い方

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