第 14 章 查找目录条目


可以使用命令行或 Web 控制台搜索和查找目录中的条目。

14.1. 使用命令行查找目录条目

您可以使用 ldapsearch 命令行工具搜索目录条目。此实用程序使用指定的身份和凭证打开到指定服务器的连接,并根据指定的搜索过滤器查找条目。搜索范围可以包括:
  • 单个条目(-s 基础)
  • 条目立即子条目()
  • 整个树或子树(-s sub)
注意
常见错误是假定根据可分辨名称中使用的属性搜索目录。区分名称只是目录条目的唯一标识符,不能用作搜索键。相反,请根据条目本身中存储的属性对搜索条目。因此,如果条目的可分辨名称为 uid=bjensen,ou=People,dc=example,dc=com,则搜索 dc=example 不匹配那个条目,除非在该条目中明确添加了 dc:example 作为属性。
搜索结果以 LDIF 格式返回。LDIF 在 RFC 2849 中定义,在 附录 B, LDAP 数据交换格式 中详细介绍。
本节包含有关以下主题的信息:

14.1.1. ldapsearch 命令行格式

ldapsearch 命令必须使用以下格式:
# ldapsearch [-x | -Y mechanism] [options] [search_filter] [list_of_attributes]
Copy to Clipboard Toggle word wrap
  • 必须使用 任何x (使用简单绑定)或 -Y (设置 SASL 机制)来配置连接类型。
  • 选项 是一系列命令行选项。如果使用了任何,则必须在搜索过滤器前指定它们。
  • search_filter 是一个 LDAP 搜索过滤器,如 第 14.3 节 “LDAP 搜索过滤器” 所述。如果使用 -f 选项在文件中指定了搜索过滤器,则不要指定单独的搜索过滤器。
  • list_of_attributes 是用空格分隔的属性列表。指定属性列表可减少搜索结果中返回的属性数量。此属性列表必须在搜索过滤器后出现。例如,请参阅 第 14.4.6 节 “显示属性的子组”。如果没有指定属性列表,搜索会返回目录中设置的访问控制允许的所有属性的值,但操作属性除外。
    要在搜索操作后返回操作属性,必须在 search 命令中明确指定它们。要返回对象的所有操作属性,请指定 +。要检索除明确指定的操作属性外的常规属性,请在 ldapsearch 命令的属性列表中使用星号 rolebinding。
    要仅检索匹配的 DN 列表,请使用特殊属性 1.1。例如:
    # ldapsearch -D "cn=Directory Manager" -W -p 389 -h server.example.com \
         -b "dc=example,dc=com" -x "(objectclass=inetorgperson)" 1.1
    Copy to Clipboard Toggle word wrap

14.1.2. 常用 ldapsearch 选项

下表列出了最常用的 ldapsearch 命令行选项。如果指定的值包含一个空格(),则该值应该用单引号或双引号括起,如 -b "cn=My Special Group,ou=groups,dc=example,dc=com "。
重要
OpenLDAP 的 ldapsearch 工具默认使用 SASL 连接。要执行简单的绑定或使用 TLS,请使用 -x 参数来禁用 SASL 并允许其他连接方法。
Expand
选项 描述
-b 指定搜索的起点。这里指定的值必须是目前存在于数据库中的可分辨名称。如果 LDAP_BASEDN 环境变量已设置为基本 DN,则此项是可选的。此选项中指定的值应该以单引号或双引号提供。例如:
-b "cn=user,ou=Product Development,dc=example,dc=com"
Copy to Clipboard Toggle word wrap
要搜索 root DSE 条目,请在此处指定一个空字符串,如 -b ""
-D 指定要向服务器进行身份验证的可分辨名称。如果服务器支持匿名访问,则这是可选的。如果指定,这个值必须是 Directory 服务器可识别的 DN,并且还必须有授权才能搜索条目。例如,-D "uid=user_name,dc=example,dc=com "。
-H
指定用于连接服务器的 LDAP URL。对于传统的 LDAP URL,其格式如下:
ldap[s]://hostname[:port]
Copy to Clipboard Toggle word wrap
端口 是可选的;如果未指定端口,它将使用默认 LDAP 端口 389 或 LDAPS 端口 636。
这也可以使用 LDAPI URL,每个元素由 HTML 十六进制代码 %2F 分隔,而不是正斜杠(/):
ldapi://%2Ffull%2Fpath%2Fto%2Fslapd-example.socket
Copy to Clipboard Toggle word wrap
对于 LDAPI,指定服务器正在侦听的 LDAPI 套接字的完整路径和文件名。由于这个值被解释为 LDAP URL,所以路径和 filename 中的正斜杠字符(/)必须被转义为 URL 转义值 %2F
使用 -H 选项而不是 -h-p
-h 指定安装 Directory 服务器的机器的主机名或 IP 地址。例如,-h server.example.com。如果没有指定主机,ldap search 将使用 localhost。
注意
目录服务器支持 IPv4 和 IPv6 地址。
-l 指定等待搜索请求完成的最大秒数。例如, -l 300nsslapd-timelimit 属性的默认值为 3600 秒。无论指定的值是什么,ldap search 都不会等待超过服务器的 nsslapd-timelimit 属性允许的时间。
-p 指定 Directory 服务器使用的 TCP 端口号。例如, -p 1049。默认值为 389
如果指定了 if -h,还必须指定 -p,即使它指定了默认值。
-s scope 指定搜索的范围。范围可以是以下之一:
base 仅搜索在 -b 选项中指定的条目,或者由 LDAP_BASEDN 环境变量定义。
一个 只搜索在 -b 选项中指定的条目的直接子级。仅搜索子项;不搜索在 -b 选项中指定的实际条目。
sub 搜索在 the -b 选项及其所有下级中指定的条目;即,从 -b 选项中指定的点开始执行子树搜索。这是默认值。
-W
提示输入密码。如果没有设置这个选项,则使用匿名访问。
或者,使用 -w 选项将密码传递给实用程序。请注意,密码可以在其他用户的进程列表中可见,并保存在 shell 的历史记录中。
-x 禁用默认 SASL 连接以允许简单的绑定。
-Y SASL_mechanism
设置用于身份验证的 SASL 机制。如果没有设置机制,ldapsearch 会选择服务器支持的最佳机制。
如果没有使用 if -x,则必须使用 -Y 选项。
-z number 设置响应搜索请求时要返回的最大条目数。使用根 DN 绑定时,这个值会覆盖服务器端 nsslapd-sizelimit 参数。

14.1.3. 使用特殊字符

使用 ldapsearch 命令行工具时,可能需要指定包含对命令行解释器具有特殊含义的字符的值,如空格()、星号 unicode 或反斜杠(\)。将带有特殊字符的值用引号("")括起。例如:
-D "cn=user_name,ou=Product Development,dc=example,dc=com"
Copy to Clipboard Toggle word wrap
根据命令行解释器,使用单引号或双引号。通常,使用单引号(')来括起值。如果存在 shell 变量,请使用双引号(")来允许变量插入。如需更多信息,请参阅操作系统文档。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat