LDAP基础:6:使用ldapsearch进行数据查询
在前面的文章中,我们已经多次使用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进行数据查询相关推荐
- 使用ldapsearch进行数据查询
https://blog.csdn.net/liumiaocn/article/details/83990918 在前面的文章中,我们已经多次使用ldapsearch进行信息的查询,但都是一条命令查询 ...
- (Java数据库编程基础操作)Statement实现数据查询操作
Statement实现数据查询操作 在整个数据库的开发过程之中数据的查询操作是最复杂的,因为查询会牵扯到各种复杂查询的管理,例如:多表查询.子查询.统计查询.集合操作等等,但是从现代的开发来讲,对于数 ...
- LDAP基础功能(重点为搜索:ldapsearch)
LDAP基础功能(重点为搜索:ldapsearch) 主目录http://407711169.blog.51cto.com/6616996/1439944 一.基本操作 连接 连接操作作用于应用程序与 ...
- php 查看mysql连接数据库_php基础之连接mysql数据库和查询数据
php基础之连接mysql数据库和查询数据 文章主要介绍了php连接mysql数据库和查询数据的方法和示例,需要的朋友可以参考下,就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我们应届毕 ...
- Hive SQL数据查询基础
教材第四章Hive SQL数据查询基础实验 提示:如果感觉sogou.500w.utf8文件太大,执行hive命令太耗时间,可以执行以下命令,截取前1万行数据,生成一个新的数据文件sogou.1w.u ...
- MS SQL入门基础:数据查询--SELECT语句
数据库是为更方便有效地管理信息而存在的人们,希望数据库可以随时提供所需要的数据信息.因此,对用户来说,数据查询是数据 库最重要的功能.本章将讲述数据查询的实现方法. 在数据库中,数据查询是通过SELE ...
- Mysql基础中篇[数据库的使用和数据查询]~
基本概念: 数据库: 英文单词DataBase,简称DB,按照一定格式存储数据的一些文件的组合,顾名思义:存储数据的仓库,实际上就是一堆文件,这些文件中存储了具有特定格式的数据. 数据库管理系统: D ...
- LDAP基础:8:ldap用户密码确认和修改
ldap用户密码的修改可以使用ldappasswd命令,也可以使用万能的ldapmodify结合ldif文件来实现,但所修改的都是普通的用户,cn=admin的管理员用户的修改一般可以通过slappa ...
- 合肥工业大学—SQL Server数据库实验七:数据查询
数据查询 1. 单表查询 2. 多表连接查询 1. 单表查询 1. 查询全体学生的信息: -- 查询全体学生的信息 select * from student 2. 根据专业编号(21)查询学生的学号 ...
最新文章
- 【建议收藏】这个工具专门用于寻找路由器中的安全漏洞
- 源码安装 odoo12 -- 问题记录
- 适合小白的卷积神经网络图解
- 2022春节档新片预售总票房达1.08亿
- 95-36-100-ChannelHandler-ChannelOutboundHandler
- bootstrapSwitch bootstrap 的开关组件扩展
- android studio gradle 打jar 包 (混淆+第三方库包)
- psftp 上传和下载
- 恶意代码防范技术原理-计算机病毒和特洛伊木马分析与防护
- unity简易游戏制作
- ubuntu 设置静态路由_ubuntu 配置静态路由
- 如何将FLV视频转成MP3格式?
- ALV 单元格控制参数LVC_S_STYL排序问题
- 计算机低级格式化,硬盘格式化之低级格式化
- 通过光纤收发器指示灯判断网络状态
- ado全称_JDBC、ODBC、OLE DB、ADO、ADOMD区别与联系
- Node安装以及cnpm安装
- html光标定位到文本框,js获取光标位置和设置文本框光标位置示例代码
- 几分钟教你批量重命名文件,批量更改数据的方法
- Pyinstaller 打包 Pytest项目及资源文件
热门文章
- 【vue】 面试题总结 - ElementUI
- linux开发板开机自启动脚本,linux 添加开机自启动脚本
- 淘派上架预告 | 郑燕作品 12.21 20:00开售
- html弹幕播放器源码,高性能HTML5弹幕播放器 Moe2_player
- 2023韩国AP考试报名8月即将开启,附AP考试报名流程
- 耳机插入电脑,但还是用的电脑的麦克风录制,用不了耳机的麦克风录制。
- 百度登录password参数
- 置信椭圆半径,卡方分布,多元正态分布
- VS05 WM开发 报错:系统找不到指定的路径 0x80070003
- 一文读懂软件测试的常见分类