automatische Konfiguration von PAM

die einzelnen Distributionen bringen jeweils einzelne Programme für die PAM-Konfiguration mit.

Debian/Ubuntu


pam-auth-update ist ein Perlscript und etwas anfällig. da es gelegentlich keine Rückmeldungen gibt.
Dann sollte man die Datei /var/lib/pam/seen löschen, wenn es Probleme gibt.
(Die Datei wird bei jedem neuen Durchlauf neu erstellt.)
Die Moduldateien (einfache ASCII-Dateien) liegen standardmäßig in: /usr/share/pam-configs/ und können selbst erstellt werden.
Das Format ist auch hier sehr empfindlich!
hier ein paar Beispiele:

access
Name: Activate access
Default: yes
Priority: 512
Auth-Type: Primary
Auth:
        required                        pam_access.so accessfile=/etc/security/access.conf
mkhomedir
Name: Activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
        required                        pam_mkhomedir.so skel=/etc/skel umask=0022
time
Name: Activate time
Default: yes
Priority: 900
Account-Type: Primary
Account:
        requisite                        pam_time.so

nicht interaktive Installation des Modules time:

pam-auth-update --package time

nicht interaktive Deinstallation des Moduls access:

pam-auth-update --remove access


Suse

pam-config ist ein reines Konsolenprogramm und funktioniert da schon besser, hat aber leider das Modul time nicht mit integriert.
Beispiele:
Installation des Moduls access:

pam-config -a access

oder

pam-config -a --mkhomedir

Deinstallation des Moduls cracklib:

pam-config -d cracklib

Anzeige aller verfügbaren Module:

pam-config --list-modules

Installation eines Service Moduls:

pam-config --service common-auth -a --mount


Sonderfall time :
Installation des Time-Moduls:

awk -i inplace -v var='account\trequisite\tpam_time.so' 'BEGIN { found = 0; ins = var } /^account/ { if( ! found ) {print var; found = 1; }} { print }' /etc/pam.d/common-account 

Deinstallation des time-Moduls:

 sed -i -e \'/pam_time.so/d\' /etc/pam.d/common-account