You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenLDAP过滤器无法返回空OU问题求助

解决OpenLDAP获取无子条目OU的问题

你的过滤器逻辑存在明显错误:(&(objectClass=organizationalUnit)(!(objectClass=*))) 中的!(objectClass=*)条件完全不成立——所有LDAP条目都必须包含objectClass属性,这个条件会直接排除所有结果,自然无法得到目标OU列表。

以下是两种可行的解决方案:

方法1:使用hasSubordinates属性筛选

OpenLDAP支持hasSubordinates属性,该属性会标记条目是否存在子条目。直接筛选该属性为FALSE的OU即可:

  • 正确过滤器:(&(objectClass=organizationalUnit)(hasSubordinates=FALSE))

方法2:使用链式匹配规则排除有子OU的条目

如果环境中hasSubordinates属性不可用,可借助LDAP链式匹配规则(1.2.840.113556.1.4.1941)筛选无子OU的条目:

  • 正确过滤器:(&(objectClass=organizationalUnit)(!(objectClass=organizationalUnit:1.2.840.113556.1.4.1941:=*)))

执行搜索的注意事项

确保搜索范围设置为子树搜索(SUBTREE),这样才能遍历基准DN(ou=compay,ou=drivers,dc=core,dc=com)下的所有OU。

示例命令(ldapsearch)

ldapsearch -x -b "ou=compay,ou=drivers,dc=core,dc=com" -s sub "(&(objectClass=organizationalUnit)(hasSubordinates=FALSE))" dn

该命令会输出所有符合条件的无子条目OU的DN。

内容的提问来源于stack exchange,提问作者Connie DeCinko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 17:02:35