GNU/Linux >> Tutoriales Linux >  >> Cent OS

CentOS/RHEL:cómo ejecutar un script o comando cuando cualquier usuario cierra la sesión de ssh

La pregunta aquí es que, cuando un usuario que ha iniciado sesión cierra la sesión de ssh, el sistema debe ejecutar un script o comando específico. Por lo tanto, es como configurar un script de publicación o un disparador para realizar la acción deseada cuando el usuario cierra la sesión de ssh.

Esto se puede hacer fácilmente con la ayuda del módulo pam en los sistemas CentOS/RHEL. Siga los pasos descritos a continuación para configurar el módulo pam.

1. Agregue la siguiente entrada al archivo de configuración de pam /etc/pam.d/sshd :

# vi /etc/pam.d/sshd
session     optional    pam_exec.so quiet /var/tmp/post_session.sh

Aquí,
/var/tmp/post_session.sh es nuestro script que se ejecutará cuando el usuario cierre sesión.

El archivo de configuración /etc/pam.d/sshd debería tener el siguiente aspecto:

# cat /etc/pam.d/sshd 
#%PAM-1.0
auth    required pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    required     pam_access.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed 
in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
####Trigger with user logout #####
session     optional    pam_exec.so quiet /var/tmp/post_session.sh
####
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

2. Ahora puede configurar el script de activación posterior según sus requisitos. Por el bien de esta publicación, agregaré la hora de cierre de sesión del usuario en un archivo. Por ejemplo:

# cat /var/tmp/post_session.sh
#!/bin/bash
if [ "$PAM_TYPE" = "close_session" ]; then
date >> /var/tmp/user_logout.out        ##  This is the action to be performed when user logs out.
fi

3. Otorgue el permiso de ejecución al script /var/tmp/post_session.sh.

# chmod ugo+x /var/tmp/post_session.sh

4. Verifique iniciando y cerrando sesión varias veces y debería obtener la hora de todos los cierres de sesión agregados al archivo /var/tmp/user_logout.out .


Cent OS
  1. ¿Cómo ver los procesos en ejecución de cualquier usuario en SSH?

  2. cómo agregar un script personalizado a systemd en CentOS/RHEL 7

  3. Cómo ejecutar rsyslog como usuario no root en CentOS/RHEL 7

  4. CentOS / RHEL:¿Cómo encontrar qué usuario ejecuta un comando específico?

  5. ¿Cómo ejecutar un comando como un usuario específico en un script de inicio?

Cómo instalar masilla en RHEL 8 / CentOS 8

Cómo eliminar un usuario en RHEL 8 / CentOS 8 Linux

Cómo configurar un Chef 12 en CentOS 7 / RHEL 7

Cómo usar el comando de historial en CentOS 8

Cómo cambiar el nombre de host en CentOS 8

Cómo instalar Scala 3 en RHEL 8 / CentOS 8