Skip to content

fix building pam config

Hinrikus Wolf requested to merge fix-pam-auth into master

Änderungen:

  • try_first_pass statt use_first_pass, da pam_sss mit ignore_unknown_user forward_pass ggf. keines gesetzt hat.
  • Templating um Unterschiede in verschiedenen Distro-Versionen auszugleichen.
  • Anpassung des Nutzer-sichtbaren Namens der angepassten Profile.
  • debconf, um genutzte Profile einzustellen.
  • Erzwingen, dass die PAM-Konfiguration neu geschrieben wird.

Zum letzten Punkt: Das Skript pam-auth-update unterteilt die /etc/pam.d/common-* in Boilerplate und Modulzeilen. Der Boilerplate wird einzeln gegen md5-Summen geprüft. Die Modulzeilen werden gegen gespeicherte Versionen in /var/lib/pam zeilenweise verglichen. Dabei versucht das Skript Benutzer-Anpassungen zu mergen. Pro wiedererkannter Modulzeile (i.e. pam_modul.so) werden die offiziellen Optionen in eine Liste umgewandelt, manuell entfernte Optionen ebenfalls entfernt, und manuell hinzugefügte Optionen hinten angehängt. Die sich daraus ergebende Liste wird in die Datei geschrieben. Nicht wiedererkannte Zeilen werden nicht gemerged. Nur wenn dieser automatische, heuristische Prozess fehlschlägt, greift die Frage an den Benutzer (oder --force), ob die Datei trotzdem überschrieben werden soll. Dann mit der offiziellen Variante aus /usr/share/pam-configs. /etc/pam.d/common-*.pam-old scheint gar nichts mit der Sache zu tun zu haben. Wir können also eine Neugenerierung der Dateien erzwingen ohne sie selbst zu löschen, indem wir die Vergleichsbasis in /var/lib/pam entfernen und somit den Mergeprozess direkt abbrechen, keine Heuristik genutzt wird, sondern wir einfach die Benutzerentscheidung für das Überschreiben angeben. Da wir nie manuelle Änderungen an den Dateien haben wollen, ist es für uns auch kein Problem diese Heuristik zu umgehen.

Der Mergeprozess: https://salsa.debian.org/vorlon/pam/-/blob/master/debian/local/pam-auth-update#L571 (insb. die beiden Kommentarblöcke)

Alles, was es an Doku dazu gibt: https://wiki.ubuntu.com/PAMConfigFrameworkSpec (insb. Design, dritter Unterpunkt)

Für Bugreports, etc. heißt das passende Debian-Paket libpam-runtime bzw. das Source-Paket pam.

Edited by Hinrikus Wolf

Merge request reports