PAM:Konfiguration
Aus KissDoc
Allgemein
Die PAM-Konfiguration ist unter Debian natürlich in /etc/ untergbracht. Aus historischen Gründen existiert eventuell noch die zentrale Konfigdatei /etc/pam.conf.
Für die neuere Konfigurationsvariante existiert ein Verzeichnis /etc/pam.d/ und in diesem Verzeichnis für jede PAM-fähige Anwendung eine eigene Konfigurationsdatei, die normalerweise den gleichen Namen wie die Anwendung oder des gewährten Services trägt.
Dabei nutzen einige Konfigs allerdings gemeinsame Einstellungen aus den Dateien:
common-accountcommon-authcommon-passwdsommon-session
, die dann per @include dateiname eingebunden werden.
Konfig-Syntax
Jede Konfig folgt dem gleichen Schema:
module-type control-flag module-path args
Mögliche Werte für module-type:
authaccountsessionpassword
Mögliche Werte für control-flag:
required- Das Modul muß fehlerfrei beendet werden. Fehler werden erst nach Abarbeitung aller anderen Module für den angegebenen Management-Task an den Benutzer gemeldet.requisite- Arbeitet wierequired, Fehler werden jedoch sofort an den Benutzer gemeldet und die Anwendung erhält die Steuerung wieder.sufficient- wenn erfolgreich, werden keine weiteren Module mehr abgearbeitet.optional- Ist eben optinal, Fehler werden ignoriert.
Bei der TU-Chemnitz existiert dazu auch eine Umfangreiche Doku.
Mögliche Werte für module-path:
- Das Modul, dessen Pfadangabe relativ zu
/lib/security/anzugeben ist.
Hinweis: Generell werden die Module der Reihe nach, also von oben nach unten abgearbeitet.
Zum besseren Verständnis hier mal ein komplexeres Beipiel, dass ich aus einem Votrag von Prof. Bär der HTW-Dresden entnommen habe:
auth requisite pam_unix.so nullok auth required pam_securetty.so auth required pam_nologin.so auth required pam_env.so account required pam_unix.so password required pam_unix.so session required pam_unix.so session required pam_limits.so
Bei diesem Beispiel für login sieht man recht gut das Modul-Stacking. Für die Authentifizierung werden 4 Module benutzt. Dabei ist pam_unix für die UNIX-Paßwort-Mimik verantwortlich, pam_securetty testet, ob ein Login des Benutzers vom einem bestimmten Terminal aus erlaubt ist, pam_nologin testet ob die Datei /etc/nologin existiert (wenn ja, wird jeder Login normaler Benutzer abgewiesen) und pam_env schließlich setzt einige wichtige Umgebungsvariablen. Meiner Meinung nach sind die letzteren Auth.-Module zwar nicht gerade typisch, aber das Beispiel kommt schließlich aus einem realen System!
Weiterhin sieht man im Beispiel die Benutzung eines Modules (pam_unix) für verschiedene Management-Kategorien. Für account führt pam_unix z.B. einen Check durch, ob der User sein Paßwort ändern muß. Beim Ändern des Paßwortes (Kategorie password) wird ebenfalls pam_unix benutzt. Die session-Komponente von pam_unix schließlich ist für das Logging des User-Logins (per syslogd) zuständig.

