第 10 章 搜索条目和调优搜索


您可以使用 Web 控制台、命令行和使用 LDAP 搜索工具搜索目录条目。通过使用全局设置的资源限值、用户级别和匿名绑定,可以改进搜索性能。

10.1. 使用命令行查找条目(ldapsearch)

您可以使用 ldapsearch 命令行工具搜索目录条目。此实用程序使用指定的身份和凭证打开到指定服务器的连接,并根据指定的搜索过滤器查找条目。搜索范围可以包括:

  • 单个条目(-s 基础)
  • 条目立即子条目()
  • 整个树或子树(-s sub)
注意

ldapsearch 工具不会根据可分辨名称中的属性搜索目录条目。区分名称只是目录条目的唯一标识符,不能用作搜索键。相反 ldapsearch 根据条目中存储的属性值对搜索条目。例如,如果条目的可分辨名称为 uid=bjensen,ou=People,dc=example,dc=com,则搜索 dc=example 不匹配,除非 dc:example 被明确添加为此条目的属性值对。

ldapsearch 工具返回 RFC 2849 规范中定义的 LDIF 格式。

10.1.1. ldapsearch 命令格式

ldapsearch 命令必须使用以下格式:

# ldapsearch [-x | -Y mechanism] [options] [search_filter] [list_of_attributes]
Copy to Clipboard Toggle word wrap
  • -x or -Y

    use -x (简单绑定)或(SASL 机制)来配置连接的类型。

  • 选项

    ldapsearch 命令行选项。如果使用了任何选项,请在搜索过滤器前指定选项。

  • search_filter

    LDAP 搜索过滤器。如果您使用 a -f 选项在文件中配置搜索过滤器,则不要指定搜索过滤器。

  • list_of_attributes

    由空格字符分隔的属性列表。指定属性列表可减少搜索结果中返回的属性数量。此属性列表必须在搜索过滤器后出现。如果没有指定属性列表,搜索会返回目录中设置访问控制允许的所有属性的值,但操作属性除外。

    如果您希望搜索返回操作属性,您必须在 ldapsearch search 命令中明确指定它。若要返回对象的所有操作属性,可使用 +。要检索除明确指定的操作属性外的常规属性,请在属性列表中使用星号(*)。

    请注意,您可能需要使用反斜杠(\*)转义星号字符。

    要仅检索匹配的 DN 列表,请使用属性 1.1。例如:

    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com \ -b "dc=example,dc=com" -x "(objectclass=inetorgperson)" 1.1
    Copy to Clipboard Toggle word wrap

10.1.2. 常用的 ldapsearch 选项

下表列出了最常用的 ldapsearch 工具选项。如果指定的值包含一个空格字符,则该值必须用单引号或双引号括起来,例如:

-b "cn=My Special Group,ou=groups,dc=example,dc=com"

重要

OpenLDAP 的 ldapsearch 工具默认使用 SASL 连接。要执行简单的绑定或使用 TLS,请使用 -x 参数来禁用 SASL 并允许其他连接方法。

Expand
选项描述

-b

指定搜索的起点 - 基本可辨识名称(DN)。请注意,可分辨的名称必须在数据库中存在。如果将 LDAP_BASEDN 环境变量设置为基本 DN,则不需要使用这个选项。
如果值包含空格字符,则必须以单引号或双引号指定选项值。例如:
-b "cn=user,ou=Product Development,dc=example,dc=com "。
要搜索 root DSE 条目,请在此处指定一个空字符串,如 -b ""

-D

指定用于向服务器进行身份验证的 DN。目录服务器必须识别 DN 值,并且 DN 必须有权限才能搜索条目。例如:
-D "uid=user_name,dc=example,dc=com"
如果服务器支持匿名访问,则不要指定这个选项。

-H

指定连接到服务器的 LDAP URL。LDAP URL 具有以下格式:

ldap[s]://hostname:[port]
Copy to Clipboard Toggle word wrap

指定 port 值是可选的。然后 ldapsearch 工具将使用默认的 LDAP 端口 389 或 LDAPS 端口 636。

实用程序也可以使用 LDAPI URL 以及由 HTML 十六进制代码 %2F 分隔的每个元素,而不是正斜杠(/)。例如:

ldapi://%2Ffull%2Fpath%2Fto%2Fslapd-example.socket
Copy to Clipboard Toggle word wrap

对于 LDAPI,指定文件的完整路径,其代表服务器正在侦听的 LDAPI 套接字。如果您没有指定 URL,ldapsearch 将使用 /etc/openldap/ldap.conf 文件中指定的 localhost 或设置。

-h

指定安装了目录服务器的机器的主机名或 IP 地址。例如,-h server.example.com。如果您没有指定主机,ldapsearch 将使用 localhost。目录服务器支持 IPv4 和 IPv6 地址。

注意

The -h 选项已弃用,并将在以后的发行版本中删除。改为使用 -H 选项。

-p

指定 Directory 服务器使用的 TCP 端口号。例如, -p 1049。默认端口号为 389

注意

The -p 选项已弃用,并将在以后的发行版本中删除。

-l

指定完成搜索请求的最大时间限制(以秒为单位)。例如, -l 300。时间限制不应超过 nsslapd-timelimit 属性中指定的值,因为 ldapsearch 工具比较这两个值并使用最小的值。默认的 nsslapd-timelimit 属性值为 3600 秒。

-s scope

指定搜索的范围。您可以选择以下范围之一:


  • 通过选项中指定的条目及其所有下级条目进行搜索。这是默认设置。
  • 一个
    通过在 -b 选项中指定的条目的直接子搜索。ldapsearch 工具只考虑子项,而不是基本 DN 本身。
  • 基本
    仅搜索在 -b 选项中指定的条目,或者由 LDAP_BASEDN 环境变量定义。

-W

提示输入密码。如果您没有指定该选项,ldapsearch 实用程序将 使用匿名访问。或者,使用 -w 选项将密码传递给实用程序。

注意

密码可以在其他用户的进程列表中可见,并保存在 shell 的历史记录中。

-x

禁用默认 SASL 连接以允许简单的绑定。

-Y SASL_mechanism

设置用于身份验证的 SASL 机制。如果您没有设置任何机制,ldap search 会选择服务器支持的最佳机制。如果不使用 the -x 选项,您必须指定 the -Y 选项。

-z number

设置响应搜索请求时要返回的最大条目数。使用根 DN 绑定时,这个值会覆盖 nsslapd-sizelimit 属性。

-f

指定带有搜索过滤器的文件。

10.1.3. 使用特殊字符

使用 ldapsearch 工具时,您可能需要为命令行解释器(如空格字符、星号(*)或反斜杠(\)指定具有特殊含义的字符的值。根据命令行解释器,将带有特殊字符的值包括在单引号中("")或双引号" "")。例如:

-D "cn=John Smith,ou=Product Development,dc=example,dc=com"
Copy to Clipboard Toggle word wrap

通常,使用单引号(' ')来包括值。使用双引号(" ")允许在有 shell 变量时进行变量插入。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat