Nehmen wir an, ich habe sshd
konfiguriert (verknüpft mit libpam.so.0
gemeinsam genutzte Bibliothek), um PAM zu verwenden, und ich habe folgenden /etc/pam.d/sshd
Inhalt:
auth requisite pam_nologin.so
auth required pam_env.so
auth required pam_unix.so try_first_pass
auth required pam_google_authenticator.so
account requisite pam_nologin.so
account required pam_unix.so try_first_pass
password requisite pam_cracklib.so
password required pam_unix.so use_authtok nullok shadow try_first_pass
session required pam_loginuid.so
session required pam_limits.so
session required pam_unix.so try_first_pass
session optional pam_umask.so
session optional pam_systemd.so
session optional pam_env.so
session optional pam_lastlog.so silent noupdate showfailed
Habe ich recht, dass PAM sshd
informiert über Erfolg oder Misserfolg am Ende jedes Stapels? Also zuerst auth
Einrichtungen werden verarbeitet und das Ergebnis wird an sshd
zurückgegeben , dann account
Einrichtungen werden verarbeitet und resultieren aus account
Stack wird an sshd
zurückgegeben , etc? Wird PAM vom Daemon informiert, wenn die authentifizierte Sitzung endet?
Akzeptierte Antwort:
In gewisser Weise passiert das, aber ich würde es nicht so formulieren.
Weil PAM sshd nicht aktiv informiert, sondern sshd PAM über Funktionsaufrufe (wie pam_authenticate
) fragt , pam_acct_mgmt
, usw.) und handelt entsprechend den Ergebnissen. PAM weiß auch nicht automatisch, wann eine Session geschlossen wird, sondern muss über pam_close_session
informiert werden (da eine Sitzung von einer anderen Anwendung aus geschlossen werden kann).
Sie können den Quellcode von openssh nachschlagen, um zu verstehen, wo und wie sshd PAM verwendet. Ich würde auch den Linux-PAM Application Developers’ Guide empfehlen, wenn Sie an den Details interessiert sind.