我在我的机器上使用 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 过滤器不需要