Не могу найти тот же вопрос, но я думаю, что это обычная проблема. У меня есть пользователь 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)...)
с участием Operator
будучи &
(И), |
(ИЛИ) и !
(НЕ).