ldapsearch 无法显示自定义字段的结果

ldapsearch 无法显示自定义字段的结果

为什么这个 ldapsearch 命令什么都没显示:

/usr/bin/ldapsearch -x -LLL -h ldapmaster.corpintra.net -b ou=people,ou=Mars,ou=Eng,dc=corpintra,dc=net '(ifxAccStatus=unlocked)' uid ifxAccStatus

以下命令返回一堆结果,显示我有具有该字段ifxAccStatus=unlocked或的人员ifxAccStatus=locked

/usr/bin/ldapsearch -x -LLL -h ldapmaster.corpintra.net -b ou=people,ou=Mars,ou=Eng,dc=corpintra,dc=net '(ifxAccStatus=*)' uid ifxAccStatus

如何只能列出 ifxAccStatus=unlocked 的用户?

谢谢,奥兹

答案1

您的架构定义可能不完整——仅仅定义属性是不够的SYNTAX(例如目錄字元串或者IA5字符串OID),这没有定义任何隐式匹配规则(比较操作)。您需要使用EQUALITYand (如果合适)明确执行此操作SUBSTR,例如:

attributetype ( 1.3.6.1.4.1.xxxxx.1.2.3
    NAME     'ifxAccStatus'
    DESC     'account lock status'
    SYNTAX   1.3.6.1.4.1.1466.115.121.1.26    
    SINGLE-VALUE
    EQUALITY caseIgnoreIA5Match
    SUBSTR   caseIgnoreIA5SubstringsMatch
    USAGE    userApplications
)

同样,也不会有隐含的排序规则,如果您需要对结果进行排序,也需要指定这一点(例如caseIgnoreOrderingMatch),尽管这通常不会像缺少相等性和子字符串操作那样引起那么多问题。

相关内容