¿Cómo agregar pasos adicionales para iniciar sesión?

8

Lo que me gustaría lograr es un programa interactivo que se ejecute antes o después de pedirle al usuario la contraseña, pero no controlará el acceso a la computadora a menos que salga con éxito. Para hacerlo algo más comprensible, aquí hay un ejemplo:

Me gustaría obtener acceso a mi computadora, primero escribiendo mi nombre de usuario, luego mi contraseña, y luego respondiendo correctamente una simple pregunta matemática generada al azar.

Para que esto funcione, utilizo el siguiente archivo de autenticación del sistema:

auth      required  pam_unix.so try_first_pass nullok nodelay
auth      optional  pam_faildelay.so delay=600000
auth      optional  pam_exec.so stdout /home/math
auth      optional  pam_permit.so
auth      required  pam_env.so

El problema es que el programa llamado matemática no puede manejar las entradas del usuario, ya que lee automáticamente un EOF de PAM, lo que esencialmente lo vuelve inútil. También probé la siguiente variante de la línea cuestionable, en cuyo caso se lee en la contraseña, que tampoco es lo que quiero:

auth      optional  pam_exec.so stdout expose_authtok /home/math
FloriOn
fuente
2
Parece que querrás codificar tu propio módulo PAM, más detalles en el manual PAM. linux-pam.org/Linux-PAM-html/Linux-PAM_MWG.html
Drav Sloan

Respuestas: