PAM:Konfiguration

Aus KissDoc

Wechseln zu: Navigation, Suche

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-account
  • common-auth
  • common-passwd
  • sommon-session

, die dann per @include dateiname eingebunden werden.

Top

Konfig-Syntax

Jede Konfig folgt dem gleichen Schema:

module-type   control-flag   module-path   args


Mögliche Werte für module-type:

  • auth
  • account
  • session
  • password


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 wie required, 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.


Top
Persönliche Werkzeuge