Мой контекст: у меня есть экземпляр 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
атрибуту mail
LDAP.
Неужели это действительно невозможно? Есть ли обходной путь?