如何使用LDAP按字母顺序获取搜索结果

时间:2018-09-25 08:03:38

标签: shell ldap

这就是我所拥有的:

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

如何获得按字母顺序排列的结果?

1 个答案:

答案 0 :(得分:1)

根据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