Как настроить фильтры NSS для сопоставления пользователей по нескольким атрибутам?

Как настроить фильтры NSS для сопоставления пользователей по нескольким атрибутам?

Мой контекст: у меня есть экземпляр OpenSMTPD, который использует PAM в качестве своего бэкэнда аутентификации. Моя конфигурация PAM использует NSS для аутентификации пользователей по каталогу LDAP.

Я хотел бы, чтобы NSS сопоставлял пользователей либо по их атрибуту, uidлибо по их mailатрибуту LDAP.

Согласно логам, которые я вижу, фильтр по умолчанию выглядит так:(&(objectClass=posixAccount)(uid=xxxxxx)) где xxxxx — логин пользователя.

На странице руководства nslcd.confописывается filterпараметр, но, похоже, нет возможности использовать переменные с ним. Плюс, какой бы фильтр я ни настраивал, он в итоге складывается (uid=xxxxx)в(например, если я установлю filter passwd (foo=bar)в файле конфигурации, фильтр, который будет использоваться для сопоставления пользователей, будет следующим (&(foo=bar)(uid=xxxx)): ).

Я хотел бы иметь возможность написать что-то вроде того, (|(uid=$login)(mail=$login))чтобы сопоставлять пользователей либо по их uidатрибуту mailLDAP.

Неужели это действительно невозможно? Есть ли обходной путь?

Связанный контент