ldapsearch-筛选dn中的ou
我知道你不能简单地在ldapsearch-筛选dn中的ou,ldap,ldap-query,Ldap,Ldap Query,我知道你不能简单地在dn上过滤,但我有这样的东西: dc=lvl3,dc=lvl2,dc=lvl1,某人可能有这样一个dn: CN=Last,First,OU=ou1,OU=retired,OU=ou1,DC=lvl3,DC=lvl2,DC=lvl1 是否有一种方法可以为那些在任何ou中没有“退休”的人筛选结果?否。不是作为LDAP筛选器 当然,您可以在客户端进行搜索和排序 一般来说,用户“特征”的组织应该使用属性,而不是目录结构 比如: employeeType=活动 employeeTyp
dn
上过滤,但我有这样的东西:
dc=lvl3,dc=lvl2,dc=lvl1
,某人可能有这样一个dn
:
CN=Last,First,OU=ou1,OU=retired,OU=ou1,DC=lvl3,DC=lvl2,DC=lvl1
是否有一种方法可以为那些在任何ou中没有“退休”的人筛选结果?否。不是作为LDAP筛选器 当然,您可以在客户端进行搜索和排序 一般来说,用户“特征”的组织应该使用属性,而不是目录结构 比如:
- employeeType=活动
- employeeType=已退休
- employeeType=etc
避免这些情况。否。不作为LDAP筛选器 当然,您可以在客户端进行搜索和排序 一般来说,用户“特征”的组织应该使用属性,而不是目录结构 比如:
- employeeType=活动
- employeeType=已退休
- employeeType=etc
避免这些情况。可能,但这取决于服务器的LDAP实现 有一种过滤器语法,允许对DN属性(除条目属性外)进行匹配: (在LDAP规范中,这称为“dnAttributes”字段,是“ExtensionMatch”筛选器类型的一部分。请参阅) 并非所有的目录服务器都支持此功能。例如,OpenLDAP正确地处理它,但Active Directory(MS AD和Samba)将忽略它,其行为就像您使用了
(ou=Retired)
如果您的服务器支持这一点,那么只需像通常那样将筛选器包装在(!(…)
中即可完成负匹配
但是,在其他情况下,您应该a)使用自定义属性,或者b)可能检查全局“活动员工”组或类似组中的成员身份。可能,但这取决于服务器的LDAP实现 有一种过滤器语法,允许对DN属性(除条目属性外)进行匹配: (在LDAP规范中,这称为“dnAttributes”字段,是“ExtensionMatch”筛选器类型的一部分。请参阅) 并非所有的目录服务器都支持此功能。例如,OpenLDAP正确地处理它,但Active Directory(MS AD和Samba)将忽略它,其行为就像您使用了
(ou=Retired)
如果您的服务器支持这一点,那么只需像通常那样将筛选器包装在(!(…)
中即可完成负匹配
但是,在其他情况下,您应该a)使用自定义属性,或者b)可能检查全局“活动员工”组或类似组的成员资格
(ou:dn:=Retired)