¿Hay alguna manera de ejecutar un script / comando cada vez que un usuario se conecta usando ssh? ¿Se puede configurar globalmente (es decir, ejecutar el script cuando cualquier usuario inicia sesión)?
Encontré esta pregunta en Identica, pero todavía no hay una respuesta y me gustaría saberla de todos modos.
¿Para todos los usuarios o un usuario en particular? Para un solo usuario, configúrelo en su .bashrcarchivo; para todos los usuarios, consulte pam_exec .
Si los usuarios vienen sshd, querrás agregar la siguiente línea a /etc/pam.d/sshd; otros archivos dependiendo de su fuente:
Para fines de prueba, el módulo se incluye como optional, de modo que aún puede iniciar sesión si falla. Después de asegurarte de que funciona, puedes cambiar optionala required. Entonces el inicio de sesión no será posible a menos que la ejecución de su script de enlace sea exitosa.
Nota: Como siempre cuando cambia la configuración de inicio de sesión, deje un shell de copia de seguridad abierto en segundo plano y pruebe el inicio de sesión desde un nuevo terminal.
Gracias, eso parece prometedor. ¿Puedes elaborar un poco más? No estoy familiarizado con esto.
phunehehe
Supongo que debería agregar session include pam_exec.so seteuid /path/to/scriptal archivo /etc/pam.d/system-remote-login. ¿Es eso correcto?
phunehehe
Ya sea system-remote-logino sshd, dependiendo de cómo esté entrando el usuario.
Glen Solsberry
¡Increíble! Sería genial si edita la respuesta para incluir la información (ya sabe, para otros que la buscan).
phunehehe
Nota para las personas googlear, también se puede poner esta línea auth optional pam_exec.so /path/to/my/hook.shen /etc/pam.d/common-authtener PAM le notifique de cualquier evento de autenticación que se producen. Este programa también puede enviarle notificaciones push: github.com/benjojo/PushAlotAuth
Nick Sweeting
6
Hay otra forma que solo influye en los usuarios que usan ssh no locales (que podría ser mejor en situaciones de emergencia)
vea los fragmentos de la página de manual de ssh a continuación.
en este caso, los usuarios generalmente pueden modificar los archivos ellos mismos (un poco como .bashrc)
~/.ssh/rc
Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information.
y esto es global y no modificable por el usuario normal
/etc/sshrc
Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started. See the sshd(8) manual page for more information.
session include pam_exec.so seteuid /path/to/script
al archivo/etc/pam.d/system-remote-login
. ¿Es eso correcto?system-remote-login
osshd
, dependiendo de cómo esté entrando el usuario.auth optional pam_exec.so /path/to/my/hook.sh
en/etc/pam.d/common-auth
tener PAM le notifique de cualquier evento de autenticación que se producen. Este programa también puede enviarle notificaciones push: github.com/benjojo/PushAlotAuthHay otra forma que solo influye en los usuarios que usan ssh no locales (que podría ser mejor en situaciones de emergencia)
vea los fragmentos de la página de manual de ssh a continuación.
en este caso, los usuarios generalmente pueden modificar los archivos ellos mismos (un poco como .bashrc)
y esto es global y no modificable por el usuario normal
fuente
/etc/ssh/sshd_config
(verman sshd_config
para más detalles)