为什么这个 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),这没有定义任何隐式匹配规则(比较操作)。您需要使用EQUALITY
and (如果合适)明确执行此操作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),尽管这通常不会像缺少相等性和子字符串操作那样引起那么多问题。