GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kommunikation zwischen Pam und Pam-aware Daemon verstehen?

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.


Linux
  1. Unterschied zwischen Login-Shell und Nicht-Login-Shell?

  2. Gemeinsame Nutzung eines X-Servers (Sitzung) über mehrere Computer hinweg?

  3. Was ist der Unterschied zwischen Sudo Su – und Sudo Su –?

  4. Unterschied zwischen Eot und Eof?

  5. Unterschied zwischen [0-9], [[:digit:]] und D?

Verstehen des Unterschieds zwischen dem Befehl sudo und su unter Linux

Unterschied zwischen apt und apt-get erklärt

Der Unterschied zwischen [[ $a ==Z* ]] und [ $a ==Z* ]?

Unterschied zwischen 2>&-, 2>/dev/null, |&, &>/dev/null und>/dev/null 2>&1?

Linux – Wie wechselt man zwischen Tty- und Xorg-Sitzung?

Vim vs. Vi – Ähnlichkeiten und Unterschiede zwischen VIM und VI?