Crear una secuencia de comandos / tarea de cierre de sesión para Linux

15

De manera similar a mi pregunta para Windows y Mac OS X , ¿cómo se podría crear un script de cierre de sesión para Linux?

Cualquier distribución está bien, ya que estoy seguro de que sería extensible a otros. Sin embargo, estoy más familiarizado con RHEL / CentOS / Fedora y Ubuntu.

Además,
si esto existe tanto para un inicio de sesión gráfico (es decir, en una estación de trabajo lcoal) como para un inicio de sesión remoto (como a través de ssh), sería ideal, pero me conformaría con uno u otro si ambos no son posibles.

madriguera
fuente

Respuestas:

13

Para sesiones SSH remotas, el trabajo de su shell es manejar cualquier secuencia de comandos al cerrar sesión. El shell Bash normalmente se ejecuta ~/.bash_logout.

Para las sesiones X, el administrador de inicio de sesión controla las secuencias de comandos al cerrar sesión. Las ubicaciones de los archivos dependen del administrador de inicio de sesión que esté en uso. Xserver no se ejecuta cuando se ejecuta el script al cerrar sesión, por lo que no incluya ningún programa en el script que intente acceder a la pantalla.

  • Para Gnome , utilícelo /etc/gdm/PostSession/Defaultpara un script de cierre de sesión predeterminado en todo el sistema (se ejecuta sin importar quién cierre sesión). A diferencia del script de cierre de sesión de Bash, no creo que haya una versión específica del usuario de un script de GDM PostSession.

  • XDM utiliza un script de reinicio instalado /etc/X11/xdm/Xreset.

  • Para KDE (usando KDM) , desea el Resetscript . KDE3 utiliza /etc/kde3/kdm/Xreset. La ubicación puede especificarse en el archivo de configuración de KDM /etc/kde3/kdm/kdmrc, con la Resetclave.

  • WDM aparentemente utiliza un par de scripts de reinicio: un script por pantalla en /etc/X11/wdm/Xreset_0(para visualización :0) y un script global en /etc/X11/wdm/Xreset. El archivo de configuración de WDM está en /etc/X11/wdm/wdm-config.

Las ubicaciones de los archivos en esta respuesta son de paquetes Debian. Los paquetes de Ubuntu generalmente usarán los mismos archivos, pero otras distribuciones pueden usar ubicaciones alternativas.

quijote curandero
fuente
¿Existe una característica similar para KDE o fluxbox o icewm?
Warren el
1
GDM es el reemplazo de Gnome para XDM, el administrador de inicio de sesión X. KDE es KDM, creo. hay otros pero esos son los tres grandes. ¿Creo que a menudo se recomienda el uso de WDM con fluxbox? También hay SDM (¡basado en SSH!) que probablemente proporciona compatibilidad con scripts. no sé más detalles; si tengo la oportunidad más tarde, intentaré averiguarlo.
quack quijote
6

Si la distribución usa PAM para autenticar a los usuarios, puede instalar pam_scriptpara proporcionar onsessionopen/onsessionclosefuncionalidad.

Lo uso en distribuciones basadas en Debian para verificar archivos modificados por usuarios scpsolo y ajustar los permisos de los archivos.

Puede descargar pam_scriptdesde freecode .

Fjor
fuente
5

El C-shell, también conocido como csh, tiene la funcionalidad .logout, y Bash (el valor predeterminado más actual) tiene .bash_logout, pero no recuerdo ningún otro shell (ksh, sh, etc.) con un concepto similar.

Shannon Nelson
fuente