Фильтр атрибутов нескольких значений LDAP

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

я действительно не хочу разделять пользователя и делать только одно поле электронной почты ...

1
задан 17 August 2017 в 10:59
1 ответ

Такой поисковый запрос должен помочь:

(&(mailAlias=bill@domain1.tld)(mail=*domain1.tld))

Условия поиска LDAP объединяются следующим образом:

(Operator(filter)(filter)(filter)...)

с Оператором , являющимся и (AND), | (OR) и ! (НЕ).

2
ответ дан 3 December 2019 в 20:20

Теги

Похожие вопросы