Wie kann man NSS-Filter anpassen, um Benutzer anhand mehrerer Attribute abzugleichen?

Wie kann man NSS-Filter anpassen, um Benutzer anhand mehrerer Attribute abzugleichen?

Mein Kontext: Ich habe eine OpenSMTPD-Instanz, die PAM als Authentifizierungs-Backend verwendet. Meine PAM-Konfiguration verwendet NSS, um die Benutzer gegenüber einem LDAP-Verzeichnis zu authentifizieren.

Ich möchte, dass NSS Benutzer entweder anhand ihres uidoder ihres mailLDAP-Attributs abgleicht.

Den Protokollen zufolge, die ich sehe, scheint der Standardfilter zu sein(&(objectClass=posixAccount)(uid=xxxxxx)) wobei xxxxx die Benutzeranmeldung ist.

Die nslcd.confManpage beschreibt den filterParameter, aber es scheint keine Möglichkeit zu geben, Variablen damit zu verwenden. Außerdem ergibt jeder Filter, den ich konfiguriere, (uid=xxxxx)am Ende(Wenn ich beispielsweise filter passwd (foo=bar)in der Konfigurationsdatei festlege, dass der Filter zum Abgleichen von Benutzern verwendet wird, lautet dieser (&(foo=bar)(uid=xxxx)):).

Ich möchte in der Lage sein, etwas zu schreiben, (|(uid=$login)(mail=$login))das Benutzer entweder anhand ihres uidoder ihres mailLDAP-Attributs abgleicht.

Ist das wirklich nicht möglich? Gibt es dafür einen Workaround?

verwandte Informationen