在前面的文章中,我们已经多次使用ldapsearch进行信息的查询,但都是一条命令查询出所有内容,这篇文章对于ldapsearch的常用方式进行进一步的解释和说明。

操作方式

执行场所

对LDAP进行操作,场所不限,LDAP服务器上进行操作,也可以在可以连接LDAP服务的客户端进行

使用命令

常用的数据的查询,可以使用ldapsearch

Option介绍

命令的Option就不再分命令来介绍,常用的Option的信息和用途整理如下:

Option 说明
-H ldapuri,格式为ldap://机器名或者IP:端口号,不能与-h和-p同时使用
-h LDAP服务器IP或者可解析的hostname,与-p可结合使用,不能与-H同时使用
-p LDAP服务器端口号,与-h可结合使用,不能与-H同时使用
-x 使用简单认证方式
-D 所绑定的服务器的DN
-w 绑定DN的密码,与-W二者选一
-W 不输入密码,会交互式的提示用户输入密码,与-w二者选一
-f 指定输入条件,在RFC 4515中有更详细的说明
-c 出错后忽略当前错误继续执行,缺省情况下遇到错误即终止
-n 模拟操作但并不实际执行,用于验证,常与-v一同使用进行问题定位
-v 显示详细信息
-d 显示debug信息,可设定级别
-s 指定搜索范围, 可选值:base|one|sub|children

常见的查询

方式1: 指定ldapuri进行查询

使用示例:
ldapsearch -x -H ldap://192.168.31.242:389 -b dc=example,dc=org -D “cn=admin,dc=example,dc=org” -w admin

方式2: 指定hostname和端口号进行查询

使用示例:
ldapsearch -x -h 192.168.31.242 -p 389 -b dc=example,dc=org -D “cn=admin,dc=example,dc=org” -w admin

方式3: 指定过滤条件:按照dn进行过滤

可以通过dn进行过滤,因为dn能较为清晰的确定一条entry的信息,比如确认admin的详细,可以使用

使用示例:
ldapsearch -x -H ldap://192.168.31.242:389 -b cn=admin,dc=example,dc=org -D “cn=admin,dc=example,dc=org” -w admin

  • 执行日志
liumiaocn:openldap liumiao$ ldapsearch -x -H ldap://192.168.31.242:389  -b cn=admin,dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
# extended LDIF
#
# LDAPv3
# base <cn=admin,dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
## admin, example.org
dn: cn=admin,dc=example,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TE5GaU0rZVZXNGlRR3FDdzQ5UzRMNjRlb2xjMjY5OU4=# search result
search: 2
result: 0 Success# numResponses: 2
# numEntries: 1
liumiaocn:openldap liumiao$

同样查询上文中生成的People的这样一个部门的话,可以使用这样的语句:

liumiaocn:openldap liumiao$ ldapsearch -x -H ldap://192.168.31.242:389  -b ou=people,dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
# extended LDIF
#
# LDAPv3
# base <ou=people,dc=example,dc=org> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
## People, example.org
dn: ou=People,dc=example,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People# search result
search: 2
result: 0 Success# numResponses: 2
# numEntries: 1
liumiaocn:openldap liumiao$

方式4: 使用模糊匹配

比如我们创建了People和Servers这两个ou,我们可以使用ou=*来一下查询出当前根下的ou的信息,比如可以使用如下的命令:

liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "ou=*"
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: ou=*
# requesting: ALL
## People, example.org
dn: ou=People,dc=example,dc=org
objectClass: top
objectClass: organizationalUnit
ou: People# Servers, example.org
dn: ou=Servers,dc=example,dc=org
objectClass: top
objectClass: organizationalUnit
ou: Servers# search result
search: 2
result: 0 Success# numResponses: 3
# numEntries: 2
liumiaocn:openldap liumiao$

常用的方式还可以使用cn=*或者cn=admin这样进行指定信息进行过滤

liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "cn=*"
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: cn=*
# requesting: ALL
## admin, example.org
dn: cn=admin,dc=example,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TE5GaU0rZVZXNGlRR3FDdzQ5UzRMNjRlb2xjMjY5OU4=# Barbara Jensen, example.org
dn: cn=Barbara Jensen,dc=example,dc=org
objectClass: inetOrgPerson
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen# search result
search: 2
result: 0 Success# numResponses: 3
# numEntries: 2
liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "cn=admin"
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: cn=admin
# requesting: ALL
## admin, example.org
dn: cn=admin,dc=example,dc=org
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword:: e1NTSEF9TE5GaU0rZVZXNGlRR3FDdzQ5UzRMNjRlb2xjMjY5OU4=# search result
search: 2
result: 0 Success# numResponses: 2
# numEntries: 1
liumiaocn:openldap liumiao$

当然这里只是给出了几个非常简单的使用例子进行过滤,可以结合>和<以及~匹配查找等方式实现更加快速和便捷地定位。

方式5: 指定返回信息

另外比较常用的一种方式类似与在SQL中写Select,我们可以指定返回的字段信息以及排序,在实际的集成中也是非常的有用,比如,我们只返回创建的uid的mail/uid/title/cn/sn,并按照我们期待的方式进行返回,具体使用示例如下:

liumiaocn:openldap liumiao$ ldapsearch -x -h 192.168.31.242 -p 389 -b "dc=example,dc=org" -D "cn=admin,dc=example,dc=org" -w admin "uid=*" sn cn title mail uid
# extended LDIF
#
# LDAPv3
# base <dc=example,dc=org> with scope subtree
# filter: uid=*
# requesting: sn cn title mail uid
## Barbara Jensen, example.org
dn: cn=Barbara Jensen,dc=example,dc=org
cn: Barbara Jensen
cn: Babs Jensen
sn: Jensen
title: the world's most famous mythical manager
mail: bjensen@example.com
uid: bjensen# search result
search: 2
result: 0 Success# numResponses: 2
# numEntries: 1
liumiaocn:openldap liumiao$

总结

这篇文章整理了一些ldapsearch常用的查询方式,当然实际使用的时候远远不止这些,但是掌握了这些,对于入门级的选手来说,简单的确认和定位应该会非常有用。

LDAP基础:6:使用ldapsearch进行数据查询相关推荐

  1. 使用ldapsearch进行数据查询

    https://blog.csdn.net/liumiaocn/article/details/83990918 在前面的文章中,我们已经多次使用ldapsearch进行信息的查询,但都是一条命令查询 ...

  2. (Java数据库编程基础操作)Statement实现数据查询操作

    Statement实现数据查询操作 在整个数据库的开发过程之中数据的查询操作是最复杂的,因为查询会牵扯到各种复杂查询的管理,例如:多表查询.子查询.统计查询.集合操作等等,但是从现代的开发来讲,对于数 ...

  3. LDAP基础功能(重点为搜索:ldapsearch)

    LDAP基础功能(重点为搜索:ldapsearch) 主目录http://407711169.blog.51cto.com/6616996/1439944 一.基本操作 连接 连接操作作用于应用程序与 ...

  4. php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据

    php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...

  5. Hive SQL数据查询基础

    教材第四章Hive SQL数据查询基础实验 提示:如果感觉sogou.500w.utf8文件太大,执行hive命令太耗时间,可以执行以下命令,截取前1万行数据,生成一个新的数据文件sogou.1w.u ...

  6. MS SQL入门基础:数据查询--SELECT语句

    数据库是为更方便有效地管理信息而存在的人们,希望数据库可以随时提供所需要的数据信息.因此,对用户来说,数据查询是数据 库最重要的功能.本章将讲述数据查询的实现方法. 在数据库中,数据查询是通过SELE ...

  7. Mysql基础中篇[数据库的使用和数据查询]~

    基本概念: 数据库: 英文单词DataBase,简称DB,按照一定格式存储数据的一些文件的组合,顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据. 数据库管理系统: D ...

  8. LDAP基础:8:ldap用户密码确认和修改

    ldap用户密码的修改可以使用ldappasswd命令,也可以使用万能的ldapmodify结合ldif文件来实现,但所修改的都是普通的用户,cn=admin的管理员用户的修改一般可以通过slappa ...

  9. 合肥工业大学—SQL Server数据库实验七:数据查询

    数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...

最新文章

  1. 【建议收藏】这个工具专门用于寻找路由器中的安全漏洞
  2. 源码安装 odoo12 -- 问题记录
  3. 适合小白的卷积神经网络图解
  4. 2022春节档新片预售总票房达1.08亿
  5. 95-36-100-ChannelHandler-ChannelOutboundHandler
  6. bootstrapSwitch bootstrap 的开关组件扩展
  7. android studio gradle 打jar 包 (混淆+第三方库包)
  8. psftp 上传和下载
  9. 恶意代码防范技术原理-计算机病毒和特洛伊木马分析与防护
  10. unity简易游戏制作
  11. ubuntu 设置静态路由_ubuntu 配置静态路由
  12. 如何将FLV视频转成MP3格式?
  13. ALV 单元格控制参数LVC_S_STYL排序问题
  14. 计算机低级格式化,硬盘格式化之低级格式化
  15. 通过光纤收发器指示灯判断网络状态
  16. ado全称_JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系
  17. Node安装以及cnpm安装
  18. html光标定位到文本框,js获取光标位置和设置文本框光标位置示例代码
  19. 几分钟教你批量重命名文件,批量更改数据的方法
  20. Pyinstaller 打包 Pytest项目及资源文件

热门文章

  1. 【vue】 面试题总结 - ElementUI
  2. linux开发板开机自启动脚本,linux 添加开机自启动脚本
  3. 淘派上架预告 | 郑燕作品 12.21 20:00开售
  4. html弹幕播放器源码,高性能HTML5弹幕播放器 Moe2_player
  5. 2023韩国AP考试报名8月即将开启,附AP考试报名流程
  6. 耳机插入电脑,但还是用的电脑的麦克风录制,用不了耳机的麦克风录制。
  7. 百度登录password参数
  8. 置信椭圆半径,卡方分布,多元正态分布
  9. VS05 WM开发 报错:系统找不到指定的路径 0x80070003
  10. 一文读懂软件测试的常见分类