如何使 nss_ldap ldap.conf 文件与具有多个过滤器的 nss_base_passwd 过滤器相关?

如何使 nss_ldap ldap.conf 文件与具有多个过滤器的 nss_base_passwd 过滤器相关?

我在我的机器上使用 ldap 进行了配置,我希望 mod_nss 从两个不同的过滤器中获取用户

基本上,我需要结合这两个过滤器才能得到一个列表,

nss_base_passwd    ou=People,dc=remote,dc=my_company,dc=net?sub?entryDN=uid=*,ou=my_company,ou=people,dc=remote,dc=my_company,dc=net 

nss_base_passwd    ou=People,dc=remote,dc=my_company,dc=net?sub?entryDN=uid=*,ou=your_company,ou=people,dc=remote,dc=my_company,dc=net 

我部署的每台服务器上都有不同的“your_company”,我需要每台机器列出我公司和贵公司的用户

如果我执行类似 ldapsearch

ldapsearch -x "(|(entryDN=uid=*,ou=my_company,ou=people,dc=remote,dc=my_company,dc=net)(entryDN=uid=*,ou=your_company,ou=people,dc=remote,dc=my_compnay,dc=net))"

它检索到了所需的结果,但将该过滤器放在 nss_ldap 中不起作用。


我认为我在访问日志中收到此错误,但不确定它是否相关:

[02/May/2019:14:19:39.038391111 -0500] conn=202 op=-1 fd=65 关闭错误 34 (数值结果超出范围) - B2

答案1

好吧,这很简单,可能不需要发布我在 3 秒后就找到答案的问题,但是

nss_base_passwd    ou=People,dc=remote,dc=my_company,dc=net?sub?
|(entryDN=uid=*,ou=my_company,ou=people,dc=remote,dc=my_company,dc=net)(entryDN=uid=*,ou=your_company,ou=people,dc=remote,dc=my_compnay,dc=net)

成功了,只需要删除过滤器周围的括号,看起来 ldapsearch 中的括号是必需的,否则你会得到一个

ldap_search_ext:错误的搜索过滤器(-7)

但 nss_ldap 过滤器不需要

相关内容