Estoy iniciando sesión en un sistema a través de SSH y me gustaría poder forzar un comando para que se ejecute al cerrar sesión, ya sea que se trate de un cierre de sesión intencional (salir del shell) o porque mi conexión SSH se ha caído / terminado. ¿Hay alguna forma de configurar esto? Mi mejor conjetura en este momento es cambiar el shell de inicio de sesión a un programa que intercepte la señal enviada al cerrar SSH (SIGHUP?) Y ejecute el comando en ese momento, pero me pregunto si hay una solución más limpia.
13
Respuestas:
La mejor manera de hacer esto sería usar pam .
En
/etc/pam.d
usted tendrá varios archivos, se llamará uno de ellossshd
. Si solo desea afectar ssh, y no otros inicios de sesión (como una GUI o un TTY real), desea este archivo.Si desea afectar todos los inicios de sesión, querrá un archivo 'común'. El nombre de este otro archivo 'común' varía según la distribución, pero puede rastrearlo siguiendo las declaraciones
include
ysubstack
en elsshd
archivo hasta llegar al archivo base.Una vez que haya identificado el archivo
/etc/pam.d
que desea usar, agregue una línea como la siguiente a lasession
sección:Esto resultará en llamadas
/etc/pam_session.sh
cada vez que alguien inicie sesión y cierre sesión (ya sea con gracia o sin gracia).Ahora solo necesitas crear
/etc/pam_session.sh
. A continuación se muestra un ejemplo que puede usar para ejecutar algo cada vez que alguien cierra sesión:(no te olvides
chmod a+x
del guión)fuente