Comment pam décide-t-il des fichiers du fichier /etc/pam.d à utiliser selon que l'utilisateur se connecte via ssh, localement, via une console série, etc ?
Les systèmes un peu plus anciens utilisent le module pam_stack.so pour cela.
Comment pam décide-t-il des fichiers du fichier /etc/pam.d à utiliser selon que l'utilisateur se connecte via ssh, localement, via une console série, etc ?
Cela peut être codé en dur dans les programmes, mais chaque service a son propre fichier dans /etc/pam.d généralement nommé d'après le nom du processus réel. Les consoles locales et en série fonctionnent toutes deux via getty qui fait passer la connexion réelle à "login", vous devrez donc regarder dans /etc/pam.d/login. SSH est en fait "sshd", il se trouve donc dans /etc/pam.d/sshd.
Sur la plupart des distributions modernes, ces fichiers contiennent principalement des lignes telles que "@include common-password" ou "auth include system-auth", donc pour ces deux-là, vous devrez regarder dans /etc/pam.d/common-password ou /etc/pam.d/system-auth. Les distributions un peu plus anciennes (RHEL3, par exemple) utilisent quelque chose comme "auth required pam_stack.so service=system-auth", qui est une version basée sur un module de la même chose.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.