Necesito ejecutar un script, cuando se abre la sesión, como el usuario que abre la sesión.
He agregado en /etc/pam.d/common-session:
session optional pam_exec.so log=/tmp/test_pam_foo.log /usr/local/bin/test_pam_foo.sh
También intenté activar la opción de pam_exec seteuid
El script básico /usr/local/bin/test_pam_foo.sh :
#!/bin/sh
id -u >> /tmp/test_pam_foo
id -ru >> /tmp/test_pam_foo
Desafortunadamente, recibo todo el tiempo como la identificación efectiva y la identificación real.
¿Me estoy perdiendo algo?
Como alternativa, conozco la existencia de pam_script, que no debe confundirse con pam-script.
Ese pam_script se ejecuta por defecto como el usuario actual y tiene la opción runas
para obligar a que se ejecute como root. Pero me gustaría privilegiar el uso de pam libs que ya están empaquetadas en mi distribución (Ubuntu 12.04).
Respuesta aceptada:
Bueno, puedes tener /usr/local/bin/test_pam_foo.sh
cambiar el usuario ya que está en el PAM_USER
variable de entorno.
Cuidado con la nota en pam_exec
página de manual sobre el usuario que tiene control potencial sobre el entorno (según el servicio que lo use (como su
) )). Entonces, usar un script probablemente no sea una buena idea allí (incluso si arregla $PATH
y otras variables problemáticas, habrá algunas sobre las que no podrá hacer nada, como SHELLOPTS o BASH_ENV para scripts bash).
Lo mejor sería usar un contenedor que cambie al usuario antes de llamar a su secuencia de comandos.