Не могу найти тот же вопрос, но думаю, что это обычная проблема. У меня есть пользователь LDAP:
dn: uid=alise,ou=peoples,dc=acme,dc=com
objectClass: inetOrgPerson
objectClass: top
cn: alise
sn: alise
uid: alise
userPassword: {SCHEME}password
mail: alise@domain1.tld
mail: alise@domain2.tld
mailAlias: bill@domain1.tld
mailAlias: bill@domain2.tld
Мне нужно вернуть почтовый атрибут, но отфильтрованный по домену. Например, если я ищу:
ldapsearch -xLLL -b ou=peoples,dc=withsound,dc=ru '(mailAlias=bill@domain1.tld)' mail
, я получаю:
dn: uid=alise,ou=peoples,dc=acme,dc=com
mail: alise@domain1.tld
mail: alise@domain2.tld
Но мне нужно что-то вроде:
ldapsearch -xLLL -b ou=peoples,dc=withsound,dc=ru '(mailAlias=bill@domain1.tld)' mail=*domain1.tld
dn: uid=alise,ou=peoples,dc=acme,dc=com
mail: alise@domain1.tld
Я не могу просто использовать | grep domain1.tld потому что я использую поиск LDAP в Postfix
я действительно не хочу разделять пользователя и делать только одно поле электронной почты ...
Такой поисковый запрос должен помочь:
(&(mailAlias=bill@domain1.tld)(mail=*domain1.tld))
Условия поиска LDAP объединяются следующим образом:
(Operator(filter)(filter)(filter)...)
с Оператором
, являющимся и
(AND), |
(OR) и !
(НЕ).