Aller au contenu

PAM (modules d'authentification enfichables)

PAM (en anglais Pluggable Authentication Modules) : bibliothèque de Linux qui décide, pour chaque programme qui authentifie (sshd, sudo, login, cron), comment vérifier l'identité, autoriser l'accès et préparer la session, selon des piles de modules décrites dans /etc/pam.d/.

L'application appelle libpam avec un nom de service ; la bibliothèque lit /etc/pam.d/<service> (à défaut /etc/pam.d/other) et exécute quatre piles : auth (prouver qui l'on est), account (avoir le droit d'entrer maintenant : compte expiré, groupe, origine), password (changer le secret) et session (préparer l'environnement : pam_limits, pam_loginuid, pam_systemd). Chaque ligne associe un type, un contrôle (required, requisite, sufficient, optional, ou la forme complète [success=1 default=ignore], qui permet des sauts) et un module .so. Sur Debian et Ubuntu, les fichiers common-* sont générés par pam-auth-update à partir des profils de /usr/share/pam-configs/ : on ajoute un profil plutôt que d'éditer ces fichiers à la main.

Deux pièges reviennent souvent. Une pile cassée n'affecte pas les sessions déjà ouvertes, seulement les nouvelles : gardez une session root ouverte et testez depuis une autre connexion avant de la fermer. Et PAM ne s'applique pas aux services lancés par systemd (sauf avec PAMName=) : les limites de /etc/security/limits.conf ne les concernent pas.

Dans les cours

Voir aussi