OpenLDAP技术问题:如何查询所有包含ou=idmap的条目?
正确的LDAP查询命令及说明
你的错误命令核心问题是LDAP过滤器语法错误——括号未正确闭合,且逻辑表达式格式不符合规则。以下是两种符合需求的正确写法,根据实际场景选择:
场景1:查询本身带有ou=idmap属性的sambaIdmapEntry条目
直接修正过滤器语法,确保逻辑表达式遵循(&(条件1)(条件2))的标准格式:
ldapsearch -Q -H ldaps://ldap1.blu.priv -b dc=ldap1,dc=blu,dc=priv -D cn=mailAccountReader,ou=Manager,dc=ldap1,dc=blu,dc=priv -vvv -LLL -w password "(&(objectClass=sambaIdmapEntry)(ou=idmap))"
场景2:查询位于ou=idmap分支下的所有sambaIdmapEntry条目
如果目标条目都集中在ou=idmap这个LDAP分支内,更高效的方式是修改搜索基准(-b参数),直接缩小搜索范围:
ldapsearch -Q -H ldaps://ldap1.blu.priv -b ou=idmap,dc=ldap1,dc=blu,dc=priv -D cn=mailAccountReader,ou=Manager,dc=ldap1,dc=blu,dc=priv -vvv -LLL -w password "objectClass=sambaIdmapEntry"
关键说明
- LDAP的逻辑与表达式必须严格用
(&(过滤条件1)(过滤条件2))格式书写,每个条件需独立用括号包裹,外层再用括号闭合。 - 若只需限定搜索分支,优先修改
-b参数,比在过滤器中添加条件的查询效率更高。
内容的提问来源于stack exchange,提问作者elbarna
相关产品推荐
相关产品推荐

