首页 > 解决方案 > 如何使用 LDAP 按字母顺序获取搜索结果

问题描述

这就是我所拥有的:

ldapsearch -x -LLL "(uid=z*)" cn | grep "^cn:" | sort -r --ignore-case | cut -c5-999

我如何按字母顺序得到这个结果?

标签: shellldap

解决方案


根据 LDAP 服务器及其配置,您可以尝试使用RFC 2891中定义的所谓服务器端排序控制。

请注意,并非所有 LDAP 服务器都支持或激活它。例如,OpenLDAP 服务器必须配置为覆盖slapo-sssvlv

此外ORDERING,必须指定适合用于排序的属性类型的匹配规则。它要么在子模式中默认指定,要么必须在搜索请求中指定。

此示例没有排序匹配规则会导致错误:

$ ldapsearch -LLL -E sss=-uid
Inappropriate matching (18)
Additional information: serverSort control: No ordering rule

这有效:

$ ldapsearch -LLL -E sss=-uid:caseIgnoreOrderingMatch

推荐阅读