====== PAM (Pluggable Authentication Modules) ====== [[wpde>Pluggable Authentication Modules]] (PAM) sind eine Softwarebibliothek, die eine allgemeine Programmierschnittstelle (API) für Authentisierungsdienste zur Verfügung stellt. PAM wurde 1995 von Vipin Samar und Charlie Lai bei Sun Microsystems entwickelt und seitdem nicht wesentlich verändert. Quelle: [[wpde>Pluggable Authentication Modules|Wikipedia zum PAM]]. ===== Links ===== * [[http://www.selflinux.org/selflinux/html/grundlagen_sicherheit05.html|Authentisierung, Autorisierung und Zugriffssteuerung mit PAM]] * [[http://www.kernel.org/pub/linux/libs/pam/|Linux-PAM]] * [[http://www.onlamp.com/pub/a/bsd/2003/02/20/FreeBSD_Basics.html|PAM (FreeBSD)]] ===== pam_userdb ===== Eine simple Authentifizierung gelingt über ''pam_userdb'', hier wird lediglich eine Textdatei mit Benutzernamen und Passwörtern (abwechselnd in jeweils eigenen Zeilen) benötigt. Beispiel: Benutzer1 Passwort1 Benutzer2 Passwort2 Die Textdatei (Dateiname hier im Beispiel: ''/etc/logins.txt'') muss dann noch per Berkeley-DB utils in eine Datenbank umgewandelt werden: db_load -T -t hash -f /etc/logins.txt /etc/logins.db Manchmal heißt db_load auch anders (db3_load, db4.6_load usw.) wenn pam eine spezielle db-Version braucht. Falls die Berkeley-DB utils noch nicht installiert sind: * [[debian:Debian]] Etch: aptitude install db4.4-util * [[debian:Debian]] Lenny + [[ubuntu:Ubuntu]] 9.04 ("jaunty"): aptitude install db4.6-utils Nun wählen wir den Dienst aus, für den diese Authentifizierung gelten soll, im Verzeichnis /etc/pam.d finden wir die nach dem Dienst benannte Dateien. Beim richtigen Dienst genügen diese 2 Zeilen: auth required /lib/security/pam_userdb.so db=/etc/logins account required /lib/security/pam_userdb.so db=/etc/logins :!: Die Dateiendung (.db) weglassen! Wenn wir Änderungen (neue Benutzer, Passwörtänderungen, ...) an der Quelldatei /etc/logins.txt vornehmen, müssen wir erneut die Datenbank erzeugen (s.o.).