GNU/Linux >> Linux Esercitazione >  >> Linux

Comprensione della comunicazione tra Pam e il demone sensibile a Pam?

Diciamo che ho configurato sshd (collegato a libpam.so.0 libreria condivisa) per usare PAM e ho seguito /etc/pam.d/sshd contenuto:

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

Ho ragione sul fatto che PAM informa sshd sul successo o sul fallimento alla fine di ogni pila? Quindi prima auth le strutture vengono elaborate e quindi il risultato viene restituito a sshd , quindi account le strutture vengono elaborate e il risultato di account lo stack viene restituito a sshd , eccetera? PAM viene informato dal demone al termine della sessione autenticata?

Risposta accettata:

In un certo senso è ciò che sta accadendo, ma non lo definirei in questo modo.
Perché PAM non informa sshd attivamente, ma piuttosto sshd chiede a PAM tramite chiamate di funzione (come pam_authenticate , pam_acct_mgmt , ecc.) e agisce in base ai risultati. PAM inoltre non sa automaticamente quando una sessione viene chiusa, ma deve essere informato tramite pam_close_session (poiché una sessione può essere chiusa da un'altra applicazione).

Puoi cercare il codice sorgente di openssh per capire dove e come sshd utilizza PAM. Consiglierei anche la Guida per gli sviluppatori di applicazioni Linux-PAM se sei interessato ai dettagli.


Linux
  1. Differenza tra shell di accesso e shell non di accesso?

  2. La differenza tra [[ $a ==Z* ]] e [ $a ==Z* ]?

  3. Condivisione di un server X (sessione) su computer?

  4. Differenza tra 2>&-, 2>/dev/null, |&, &>/dev/null E>/dev/null 2>&1?

  5. Qual è la differenza tra Sudo Su – e Sudo Su –?

Comprendere la differenza tra il comando sudo e su su Linux

Differenza tra apt e apt-get spiegato

Linux:come passare dalla sessione Tty a quella Xorg?

La differenza tra Nss e Pam?

Vim vs Vi:somiglianze e differenze tra VIM e VI?

Differenza tra $HOME e '~' (tilde)?