GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comprender la comunicación entre Pam y Pam-aware Daemon?

Digamos que tengo configurado sshd (vinculado contra libpam.so.0 biblioteca compartida) para usar PAM y he seguido /etc/pam.d/sshd contenido:

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

¿Tengo razón en que PAM informa a sshd? sobre el éxito o el fracaso al final de cada pila? Así que primero auth las instalaciones se procesan y luego el resultado se devuelve a sshd , luego account las instalaciones son procesadas y resultado de account la pila se devuelve a sshd , ¿etc? ¿El daemon informa a PAM cuando finaliza la sesión autenticada?

Respuesta aceptada:

En cierto sentido, eso es lo que está sucediendo, pero no lo expresaría de esa manera.
Porque PAM no informa a sshd activamente, sino que sshd le pregunta a PAM a través de llamadas a funciones (como pam_authenticate , pam_acct_mgmt , etc.) y actúa en función de los resultados. PAM tampoco sabe automáticamente cuándo se cierra una sesión, pero debe ser informado a través de pam_close_session (ya que una sesión se puede cerrar desde otra aplicación).

Puede buscar el código fuente de openssh para comprender dónde y cómo sshd utiliza PAM. También recomendaría la Guía para desarrolladores de aplicaciones Linux-PAM si está interesado en los detalles.


Linux
  1. ¿Diferencia entre Shell de inicio de sesión y Shell sin inicio de sesión?

  2. ¿Compartir un servidor X (sesión) entre computadoras?

  3. ¿Diferencia entre [0-9], [[:digit:]] y D?

  4. Comprender Tc Qdisc e Iperf?

  5. ¿Diferencia entre $HOME y '~' (tilde)?

Comprender la diferencia entre los comandos sudo y su en Linux

Explicación de la diferencia entre apt y apt-get

¿Diferencia entre Eot y Eof?

¿Diferencia entre Snat y Masquerade?

¿La diferencia entre Nss y Pam?

Vim vs Vi:¿similitudes y diferencias entre VIM y VI?