手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

ldapsearch(1)

名称

ldapsearch - ldap 搜索工具

用法概要

ldapsearch [-n] [-u] [-v] [-t] [-A] [-B] [-L] [-R] [-H] 
     [-?] [-t] [-T] [-B] [-E] [-J] [-e] [-l] [-Z] [-r] 
     [-M] [-d debuglevel] [-F sep] [-f file] [-D bindDN] 
     [-j filename] [-V version] [-Y proxyDN] [-O hopLimit] 
     [-i locale] [-k path] [-S [-] attribute] [-C pattern] 
     [-c authzid] [-P path] [-N certificate] [-w passwd] 
     [-h ldaphost] [-p ldapport] [-o attributename=value] 
     [-b searchbase] [-s scope] [-a deref] [-l timelimit] 
     [-z sizelimit] filter [attrs]...

描述

ldapsearch 实用程序可打开与 LDAP 服务器的连接,使用过滤器 filter 绑定并执行搜索。

如果 ldapsearch 找到一个或多个条目,则会检索由 attrs 指定的属性并且会将条目和值输出到标准输出。如果没有列出 attrs,则会返回所有属性。

输出格式

如果找到一个或多个条目,则会按以下格式将每个条目写入到标准输出:


dn: Distinguished Name (DN)
        attributename: value
        attributename: value
        attributename: value
...

多个条目以单个空行分隔。如果使用 –F 选项指定一个不同的分隔符字符,则会改用该字符而不使用 : 字符。如果使用 –t 选项,则会返回临时文件的名称而不是实际值。如果给定了 –A 选项,则只会返回 “attributename” 而不返回属性值。

选项

支持以下选项:

–A

仅检索属性(不检索值)。如果只想了解条目中是否存在某个属性而对具体值不感兴趣,则该选项非常有用。

–a deref

指定如何执行别名引用解除。deref 的可能值有 neveralwayssearchfind,分别指定从不解除别名引用、始终解除别名引用、在搜索时解除别名引用,或只在查找要搜索的基对象时解除别名引用。缺省行为是从不解除别名引用。

–B

显示非 ASCII 值并使用旧的非 LDIF 格式。此选项禁用缺省的 –L 选项。

–b searchbase

使用 searchbase 而非缺省值作为搜索的起点。

–C pattern

持久性搜索。执行搜索时使连接保持打开状态,并且每当添加、修改或删除与搜索的范围或过滤器匹配的条目时都显示结果。使用此选项,ldapsearch 工具将无限期运行,必须通过键入 Ctrl-c 来停止它。pattern 采用以下格式:

ps:changeType[:changesOnly[:entryChangeControls]]
–c authzid

指定 getEffectiveRights 控件 authzid。例如:

dn:uid=bjensen,dc=example,dc=com
–D bindDN

使用标识名 bindDN 绑定到目录。

–d debuglevel

设置 LDAP 调试级别。适用于 ldapsearch 的有用调试级别包括:

1

跟踪

2

4

参数

32

过滤器

128

访问控制

要请求多个类别的调试信息,请将掩码相加。例如,要请求跟踪和过滤器信息,请将 debuglevel 指定为 33。

–E

通过验证响应控制,要求服务器公开(报告)绑定标识。

–e

最小化值的 base-64 编码。

–F sep

使用 sep 作为属性名称与值之间的字段分隔符。如果指定了此选项,则会忽略 –L 选项。

–f file

file 中读取一系列行,针对每行执行一次 LDAP 搜索。在这种情况下,在命令行上给定的 filter 将被视为一个模式,其中,%s 的第一个实例将被替换为 file 中的一行。如果 file 是单个 - 字符,则会从标准输入中读取行。

–G pattern

虚拟列表视图。仅检索所有结果的一部分,具体由搜索目标的索引或值和在目标前后要返回的条目数目来确定。此选项始终要求使用 –S–x 选项来指定服务器上的排序顺序。

–?

显示简要描述所有选项的用法帮助文本。

–H

显示简要描述所有选项的用法帮助文本。

–h ldaphost

指定运行安全 LDAP 服务器的备用主机。

–i locale

指定用于命令行输入的字符集。缺省值是在 LANG 环境变量中指定的字符集。您可能希望使用此选项执行从指定的字符集到 UTF8 的转换,从而覆盖 LANG 设置。使用此参数,可以采用指定的字符集输入绑定 DN、基 DN 和搜索过滤器模式。ldapsearch 工具在处理搜索请求之前基于这些参数转换输入。例如,–i no 指示将以挪威语提供绑定 DN、基 DN 和搜索过滤器。此参数仅影响命令行输入。如果指定了包含搜索过滤器的文件(通过 –f 选项),则 ldapsearch 不会转换文件中的数据。

–j filename

指定绑定 DN 的口令或 SSL 客户机密钥数据库的口令所在的文件。要保护口令,请在脚本中使用此选项,并将口令存放在安全文件中。此选项与 –w–W 选项互斥。

–J [:criticality[:value|::b64value|b64value|:fileurl]]

Criticality 是一个布尔值(缺省值是 false)。

–k path

指定包含转换例程的目录路径。如果要指定目录服务器缺省情况下不支持的语言环境,则需要使用这些例程。这用于 NLS 支持。

–L

以 LDIF 格式显示搜索结果。此选项还会打开 –B 选项。此行为是缺省行为。

–l timelimit

最多等待 timelimit 秒后搜索完成。

–M

管理智能引用。当它们是操作的目标时,将搜索包含引用的条目而不是搜索通过跟踪引用获取的条目。

–N certificate

指定用于基于证书的客户端验证的证书名称。例如:–N “Directory-Cert”

–n

显示应执行的操作,但不实际执行搜索。可以与 –v–d 一起用于调试。

–O hopLimit

指定在查找要修改的条目时要遵循的引用跳数的最大数目。缺省情况下,没有任何限制。

–o attributename=value

用于 SASL 机制和其他选项,例如安全属性、运行模式、授权 ID、验证 ID 等。

各种属性名称及其值如下所示:

secProp=“number”

用于定义 SASL 安全属性。

realm=“value”

指定 SASL 领域(缺省值为 realm=none)。

authzid=“value”

指定用于 SASL 绑定的授权 ID 名称。

authid=“value”

指定用于 SASL 绑定的验证 ID。

mech=“value”

指定各种 SASL 机制。

–P path

指定客户端证书数据库的路径和文件名。例如:

-P /home/uid/.netscape/cert7.db

在与目录服务器相同的主机上使用命令时,可以使用服务器自己的证书数据库。例如:

-P installDir/lapd-serverID/alias/cert7.db

单独使用 –P 选项将仅指定服务器验证。

–p ldapport

指定安全 LAPD 服务器侦听的备用 TCP 端口。

–R

不自动跟踪在搜索时返回的引用。

–r

以旧格式显示 ldapsearch 命令的输出。

–S [-]attribute

指定用于对搜索返回的条目进行排序的属性。排序条件按照属性值的字母顺序排序或按照格式 –attribute 的反向字母顺序排序。您可以给定多个 –S 选项来细化排序,例如:

-S sn -S givenname

缺省情况下,这些条目未排序。使用 –x 选项执行服务器端排序。

–s scope

指定搜索的范围。scope 的可能值有 baseonesub,分别用来指定基对象、一层或子树搜索。缺省值为 sub

–T

设置搜索结果的输出格式,以便在各个属性值内不使用换行符。

–t

将检索到的值写入到一组临时文件。这对于处理非 ASCII 值(例如 jpegPhoto 或 audio)非常有用。

–U

URL 格式(仅在与 –t 选项一起使用时有效)。当使用临时文件输出时,该工具的标准输出包括文件的 URL 而不是属性值。例如:

jpegPhoto:< file:/tmp/ldapsearch-jpegPhoto-YzaOMh
–u

在输出中包括标识名 (Distinguished Name, DN) 的用户友好形式。

–v version

指定要用于删除操作的 LDAP 协议版本号,2 或 3。LDAP v3 为缺省值。当连接到不支持 v3 的服务器时,请指定 LDAP v2。

–v

在详细模式下运行,将诊断信息写入到标准输出。

–W password

指定在 –P 选项中给出的客户端密钥数据库的口令。对于基于证书的客户端验证,此选项是必需的。在命令行上指定 password 会有安全问题,因为系统上的其他人可以通过 ps 命令看到口令。请改用 –j 从文件中指定口令。此选项与 –j 互斥。

–w passwd

使用 passwd 作为用于对目录进行验证的口令。当使用 –w passwd 指定用于验证的口令时,系统的其他用户可以通过 ps 命令在脚本文件中或者在 shell 历史记录中看到口令。如果在不使用此选项的情况下使用 ldapsearch 命令,则该命令将提示输入口令并从标准输入中读取口令。当不与 –w 选项一起使用时,其他用户将看不到口令。

–x

–S 选项一起使用以指定搜索结果在服务器上进行排序而不是由在客户端上运行的 ldapsearch 命令进行排序。如果希望根据某个匹配规则进行排序(例如使用国际搜索时),这非常有用。如果受支持,在服务器上进行排序通常比在客户端上进行排序更快。

–Y proxyDN

指定要用于修改操作的代理 DN(被代理的授权 id),在 shell 中通常置于双引号 ("") 中。

–Z

指定要用于提供基于证书的客户端验证的 SSL。此选项需要 –N 和 SSL 口令以及识别证书和密钥数据库所需的任何其他 SSL 选项。

–z sizelimit

最多检索 sizelimit 个条目后搜索完成。

示例

示例 1 执行子树搜索

以下命令执行子树搜索(使用缺省的搜索基)来查找 commonName 为 “mark smith” 的条目。将检索 commonName 和 telephoneNumber 值并将其输出到标准输出。使用 –r 选项将以旧格式显示此输出。

example% ldapsearch "cn=mark smith" cn telephoneNumber

输出结果看起来类似于以下内容:


dn: Mark D Smith, ou=Sales, ou=Atlanta, ou=People, o=XYZ, c=US
cn: Mark Smith
cn: Mark David Smith
cn: Mark D Smith 1
cn: Mark D Smith
telephoneNumber: +1 123 456-7890

dn: Mark C Smith, ou=Distribution, ou=Atlanta, ou=People, o=XYZ, c=US
cn: Mark Smith
cn: Mark C Smith 1
cn: Mark C Smith
telephoneNumber: +1 123 456-9999

示例 2 使用缺省搜索基执行子树搜索

以下命令使用 –r 选项通过缺省搜索基执行子树搜索来以旧格式显示用户 id 为 mcs 的条目。将在包含 DN 本身的行后输出条目 DN 的用户友好形式,并且将检索 jpegPhotoaudio 值并将其写入到临时文件中。


ldapsearch -r -u -t "uid=mcs" -r jpegPhoto audio

如果找到了对于所请求的每个属性都有一个值的一个条目,则输出结果可能看起来类似于以下内容:


cn=Mark C Smith, ou=Distribution, ou=Atlanta, ou=People, o=XYZ, c=US
Mark C Smith, Distribution, Atlanta, People, XYZ, US
audio=/tmp/ldapsearch-audio-a19924
jpegPhoto=/tmp/ldapsearch-jpegPhoto-a19924
示例 3 执行单层搜索

以下命令在 organizationName 以 XY 开头的所有组织的 c=US 层执行单层搜索。

example% ldapsearch -s one -b "c=US" "o=XY*" o description

将检索 organizationNamedescription 属性值并将其输出到标准输出,最后所得到的输出结果类似于以下内容:

dn: o=XYZ    c=US
     o: XYZ
     description: XYZ Corporation

     dn: o="XY Trading Company", c=US
     o: XY Trading Company
     description: Import and export specialists

     dn: o=XYInternational, c=US
     o: XYInternational
     o: XYI
     o: XY International
示例 4 在 IPv6 服务器上执行子树搜索

以下命令使用缺省搜索基在 IPv6(即 –h)服务器上执行子树搜索来查找用户 id 为 mcs 的条目。


example% ldapsearch -u -h '['fec0::111:a00:20ff:fea3:edcf']' \
              -t "uid=mcs" jpegPhoto audio

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。向标准错误写入一条诊断消息。

属性

有关以下属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os
接口稳定性
Committed(已确定)

另请参见

ldapadd(1)ldapdelete(1)ldapmodify(1)ldapmodrdn(1)attributes(5)