ldapsearch使用
| 参数 | 用途 |
| -? | 打印关于使用 ldapsearch 的帮助。 |
| -a deref | 指定别名反向引用。请输入 never、always、search 或 find。如果不使用此参数,缺省为 never。 |
| -A | 只检索属性的名称,而不检索属性的值。 |
| -b base dn | 指定用作搜索起始点的专有名称。使用引号来指定该值,例如:"ou=West,o=Acme,c=US"
如果要搜索的服务器需要指定搜索起点,则必须使用此参数。否则此参数是可选的。 也可以同时使用 -b 和 -s 来确定搜索范围。没有 –s,-b 就会搜索指定为起始点的项以及该项的所有子项。 |
| -B | 允许打印非 ASCII 值 |
| -D bind dn | 指定服务器用于验证您的专有名称。名称必须与目录中的项相符,并且必须拥有搜索目录所需的权限。
请使用引号来指定该名称,例如:"cn=Directory Manager,o=Acme,c=US" 如果不使用此参数,则与服务器的连接是匿名的。如果服务器不允许匿名连接,则必须使用 -D。 除了 -D,还必须使用 -w 参数来指定与专有名称相关联的口令。 |
| -f file | 指定包含要使用的搜索过滤器的文件,如 -f 过滤器。请将每个搜索过滤器置于单独的一行。Ldapsearch 会对每一行执行一次搜索。可选择指定过滤模式。例如,指定 -f 过滤 "cn=%s",并在文件的每一行中输入公用名称的值。 |
| -F sep | 在属性名称和值之间打印 sep 而不是等号 (=)。例如,如果读取 ldapsearch 输出的工具希望使用其他的分隔符时,可以使用此参数。 |
| -h host name | 指定要连接的服务器主机名,如 -h server.acme.com。 |
| -l timelimit | 指定完成搜索的时间限制(秒)。如果没有指定此参数或指定的限制为 0,那么搜索就没有时间限制。但是,ldapsearch 的等待时间决不会超过服务器上设置的搜索时间限制。 |
| -L | 指定以 LDIF 格式输出。LDIF 格式使用冒号 (:) 而不是等号 (=) 作为属性描述符。LDIF 对一次性添加或修改大量目录项很有帮助。例如,可以将输出内容引入兼容 LDAP 的目录中。 |
| -M | 将参考对象作为普通项进行管理,以使 ldapsearch 可返回参考项本身的属性,而不是所参考的项的属性。 |
| -n | 显示如何执行搜索,但不实际执行搜索 |
| -p port | 指定服务器使用的端口。如果没有使用此参数,缺省情况下 ldapsearch 使用 389 端口。 |
| -R | 不自动遵循服务器返回的搜索引用。请注意,Netscape 目录服务器将术语 referrals 用于搜索引用。 |
| -s scope | 指定使用 -b 参数时的搜索范围:
指定 -b 和 -s 的顺序并不重要。 |
| -S attribute | 按指定的属性排序结果。 |
| -z sizelimit | 指定返回项的最大数目。如果没有指定此参数或指定的限制为 0,那么返回的项没有数量限制。但是,ldapsearch 返回的项决不会多于服务器允许的数量。 |
| -u | 指定 ldapsearch 以用户友好格式返回专有名称。 |
| -v | 指定 ldapsearch 以详尽模式运行。 |
| -w password | 指定与 -D 参数一起使用的与专有名称关联的口令。 |
| x | 与 -S 一起使用时可指定 LDAP 服务器在将结果返回之前就对它们进行排序。如果使用 -S 而不使用 –x,ldapsearch 将对结果排序。 |
ldapsearch 搜索过滤器中使用的运算符表
下表描述了可以在搜索过滤器中使用的运算符。
| 运算符 | 用途 | 样例 |
| = | 查找所包含的属性值与指定值相同的项 | "cn=John Browning" |
| = <string>*<string> | 查找所包含的属性值与指定的子字符串相同的项 | "cn=John*"
"cn=J*Brown" |
| >= | 查找特定项,该项中包含的属性的数字或字母值大于或等于指定的值。 | "cn>=D" |
| <= | 查找特定项,该项中包含的属性的数字或字母值小于或等于指定的值。 | "roomNumber<=300" |
| =* | 查找包含特定属性的值的项,而不用管属性的值是什么。 | "sn=*" |
| ~= | 查找特定项,该项中所含属性的值约等于指定的值。 | "sn~=Brning" 可能返回 sn=Browning |
| & | 查找与所有搜索过滤器中指定的条件相匹配的项 | "(&(cn=John Browning)(l=Dallas))" |
| | | 查找与至少一个搜索过滤器中指定的条件相匹配的项 | "(|(cn=John Browning)(l=Dallas))" |
| ! | 查找与任何搜索过滤器中指定的条件都不匹配的项 | "(!(cn=John Browning)(l=Dallas))" |
使用 ldapsearch 的搜索过滤器
必须使用搜索过滤器指定要搜索的属性。搜索过滤器的语法为:
"<attribute> <operator> <value>"
例如,下面的搜索过滤器可以找到所有的特定项,只要该项中以 Smith 作为 sn(别称)属性的值:
"sn=Smith"
可以在搜索过滤器中指定存储在目录中的任意属性。以下是用来搜索个人项的公用属性:
cn -- 个人的公用名称
sn -- 个人的姓
telephonenumber -- 个人的电话号码
l -- 个人的地理位置
可以在 ldapsearch 命令行中指定搜索过滤器,或在文件中指定它们,并使用 lsearch 参数 -f 引用此文件。如果使用文件,请在单独的行中指定每个搜索过滤器。
请注意:如果 LDAP 目录(如 Domino LDAP 目录)支持语言标记,则可在搜索过滤器中包含它们。例如:
"givenName;lang-fr=Etienne"
使用布尔运算符的多个搜索过滤器
您可以使用多个搜索过滤器以及布尔运算符。使用下列语法:
"(operator(filter)(filter))"
例如,使用下面的搜索过滤器查找别称为 Browning、位置为 Dallas 的项。
"(&(sn=Browning)(l=Dallas))"
布尔运算符可以嵌套。例如,使用下面的搜索过滤器在邮件网络域 MDN 中查找 surname 为 caneel 或 givenname 为 alfred 的项:
"(&(maildomain=MDN)(|(sn=caneel)(givenname=alfred)))"
使用 ldapsearch 的样例
下表提供使用 ldapsearch 实用程序的样例。
| 搜索 | 命令 |
| 使用端口 389 的主机 ldap.acme.com 上的所有项,并返回所有属性和值 | ldapsearch -h ldap.acme.com "objectClass=*" |
| 同上,但仅返回属性名称 | ldapsearch -A -h ldap.acme.com" objectClass=*" |
| 使用端口 389 的主机 ldap.acme.com 上的所有项,并且反向引用找到的所有别名 | ldapsearch -a always -h ldap.acme.com "objectClass=*" |
| 使用端口 389 的主机 ldap.acme.com 上的所有项,并返回 mail、cn、sn 和 givenname 等属性 | ldapsearch -h ldap.acme.com "objectClass=*" mail cn sn givenname |
| 在使用端口 389 的主机 ldap.acme.com 上,在 ”ou=West,o=Acme,c=US” 基准下搜索 (cn=Mike*),并返回所有属性和值 | ldapsearch -b "ou=West,o=Acme,c=US" -h ldap.acme.com "(cn=Mike*)" |
| 使用端口 389 的主机 ldap.acme.com 上的一个级别,并返回所有属性和值 | ldapsearch -s onelevel -h ldap.acme.com "objectClass=*" |
| 同上,但限制基准的范围 | ldapsearch -s base -h ldap.acme.com "objectClass=*" |
| 使用端口 389 的主机 ldap.acme.com 上的所有项,并返回所有的属性和值;搜索时间限制为五秒 | ldapsearch -l 5 -h ldap.acme.com "objectClass=*" |
| 使用端口 389 的主机 ldap.acme.com 上的所有项,并返回所有的属性和值;大小限制为五 | ldapsearch -z 5 -h ldap.acme.com "objectClass=*" |
| 使用端口 389 的主机 ldap.acme.com 上的所有项,捆绑为:用户“cn=John Doe,o=Acme”,口令“password”,并以 LDIF 格式返回所有的属性和值 | ldapsearch -h ldap.acme.com -D "cn=john doe,o=acme" -w password -L "objectClass=*" |
| 使用端口 389 的主机 ldap.acme.com。对“cn=John Doe,o=Acme”项,返回其允许匿名查看的所有属性 | ldapsearch -h ldap.acme.com" -s base -b "cn=john doe,o=acme" objectClass=*" |
| 配置为在端口 391 上侦听 LDAP 请求的另一台主机 bluepages.ibm.com 上的所有项 | ldapsearch -h bluepages.ibm.com -p 391 "objectClass=*" |
| 端口 391 上的 bluepages.ibm.com。对还有与 OR 过滤器中任意一个属性相匹配的属性的任何“个人”对象类型进行子树搜索(缺省),从组织“o=ibm”开始。超时值为 300 秒,返回的最大项数设为 1000。且仅返回 DN(缺省)和 CN(这是 Web 应用程序的公用过滤器)。 | ldapsearch -h bluepages.ibm.com -p 391 -b "o=ibm" -l 300 -z 1000 "(&(objectclass=Person)(|(cn=jerry seinfeld*)(givenname=jerry seinfeld*)(sn=jerry seinfeld*)(mail=jerry seinfeld*)))" cn |
| 端口 391 上的 bluepages.ibm.com。以基准项“cn=HR Group,ou=Asia,o=IBM”为起始,时间限制为 300 秒,查询此项的所有成员。(Web 应用程序中用以确定群组成员的另一个公用过滤器)。 | ldapsearch -h bluepages.ibm.com -p 391 -b "cn=HR Group,ou=Asia,o=IBM" -s base -l 300 "(objectclass=*)" member |
ldapsearch使用的更多相关文章
- Linux下LDAPSearch的例子
apt-get install ldap-utils LdapSearch examples The following examples are taking from various ldapse ...
- 怎样在Linux下通过ldapsearch查询活动文件夹的内容
从Win2000開始.微软抛弃NT域而採用活动文件夹来管理Windows域.而活动文件夹就是微软基于遵守LDAP协议的文件夹服务.假设用扫描器扫描的话能够发现活动文件夹的389port是打开的.并且微 ...
- ldap数据库--ldapsearch,ldapmodify
简单介绍一下ldapsearch命令,在ldap搜索条目时很有用,只要适当调整filter就可以. 命令如下: ldapsearch -h hostname -p port -b baseDN -D ...
- [ldap]slapcat/ldapsearch与ldap备份
http://serverfault.com/questions/577356/ldap-backup-with-slapcat-vs-ldapsearch Used: openldap-server ...
- 用ldapsearch验证LDAP认证信息
企业里面各种各样的系统,堆积多了以后帐号数不胜数,比较好的解决方案之一是用LDAP.不过Microsoft的ActiveDirectory认证是否成功需要有命令来进行验证,可以通过ldapsearch ...
- [原创]django+ldap实现统一认证部分一(django-auth-ldap实践)
前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 ,ldap部署相关,ldap双机\LAM配置管理\ldap备份还原,目前来说,我们已经有了高可用性的ldap环境了 ...
- ldap部署相关,ldap双机\LAM配置管理\ldap备份还原
前言 接之前我的文章,django+ldap+memcache实现单点登录+统一认证 就单点登录实现过程进行详细记录,ldap是一切的基础,可以把它理解成一个读强写弱的文件类型数据库,统一认证我们通过 ...
- 通过LDAP管理VSFTP帐户
yum install -y openldap openldap-servers openldap-clients pam_ldap nss-pam-ldapd vsftpd slappasswd # ...
- Centos6 yum安装openldap+phpldapadmin+TLS+双主配置
原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%8 ...
随机推荐
- SVN的Hooks功能--强制添加注释
所谓hooks,可以类似 理解Linux内核Netfilter框架的hook点和hook函数的概念.当用户在维护代码的过程中,其执行的相关动作正好触发了相关hook点,就 会去执行对应hook点的脚本 ...
- 使用pull方式解析xml文件示例:
网上的示例太多,基本类似,个人在此做个简单的总结: 1.首先在工程的asserts目录下建一个book.xml文件: <?xml version="1.0" encoding ...
- sqlserver连接问题收集
问题1. 使用navicat连接本地sqlserver,报错“命名管道提供程序无法打开与 sql server 的连接 [2]” 解决: 参考本篇文章 <持续收集中>
- 浅析JavaBean
一.概述 JavaBean组件本质上是一个Java类,只是这个类的编码要遵循一些约定.用户可以使用JavaBean将功能.处理.值.数据库访问和其他任何可以用java代码创造的对象进行打包,并且其他的 ...
- thinkphp 控制器unset删除对象变量失败。。
今儿开发过程中发现 tp是unset 变量失败..具体代码 foreach( $this->menu as $k => $v){ if(0 == $v['flag']) unset($th ...
- windows“启动”对应的路径
C:\Users\huangye\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- linux strace 命令详解
简介 strace常用来跟踪进程执行时的系统调用和所接收的信号. 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核 ...
- 替换linux系统文件etc下passwd文件的字段获取真正的root权限
sudo与root 很多人都知道使用linux可以利用sudo来执行一些root权限执行的事情,但是sudo和root还是有很大的区别的. 区别一:sudo可以执行的命令是root账户利用/etc/s ...
- (转载)解决AndroidStudio导入项目在 Building gradle project info 一直卡住
源地址http://blog.csdn.net/yyh352091626/article/details/51490976 Android Studio导入项目的时候,一直卡在Building gra ...
- Modelsim SE 仿真 ALTERA FPGA IP
Modelsim SE 仿真 ALTERA FPGA IP 最近,有几个朋友问过我是不是有新版本的Modelsim altera,其原因是 Qii 升级为新版本的,但是没配套的modelsim,没办法 ...