GNU/Linux >> Linux Esercitazione >  >> Cent OS

CentOS/RHEL – Come eseguire uno script o un comando quando un utente si disconnette dalla sessione ssh

La domanda qui è che quando un utente connesso si disconnette dalla sessione ssh, il sistema deve eseguire uno script o un comando specifico. Quindi è come configurare un post script o un trigger per eseguire l'azione desiderata quando l'utente è disconnesso dalla sessione ssh.

Questo può essere fatto facilmente con l'aiuto del modulo pam nei sistemi CentOS/RHEL. Segui i passaggi descritti di seguito per configurare il modulo pam.

1. Aggiungi la voce seguente al file di configurazione di pam /etc/pam.d/sshd :

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

Qui,
/var/tmp/post_session.sh è il nostro script che verrà eseguito quando l'utente è disconnesso.

Il file di configurazione /etc/pam.d/sshd dovrebbe essere simile al seguente:

# 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. Ora puoi configurare lo script post trigger secondo le tue esigenze. Per il bene di questo post, aggiungerò semplicemente l'ora della disconnessione dell'utente in un file. Ad esempio:

# 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. Concedi l'autorizzazione di esecuzione allo script /var/tmp/post_session.sh.

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

4. Verifica effettuando l'accesso e la disconnessione più volte e dovresti ottenere l'ora di tutte le uscite aggiunte al file /var/tmp/user_logout.out .


Cent OS
  1. Come visualizzare i processi in esecuzione di qualsiasi utente in SSH?

  2. come aggiungere uno script personalizzato al systemd in CentOS/RHEL 7

  3. Come eseguire rsyslog come utente non root in CentOS/RHEL 7

  4. CentOS / RHEL:come trovare quale utente esegue un comando specifico?

  5. Come utilizzare nohup per continuare a eseguire un comando dopo il logout dell'utente?

Come installare lo stucco in RHEL 8 / CentOS 8

Come eliminare un utente su RHEL 8 / CentOS 8 Linux

Come configurare uno Chef 12 su CentOS 7 / RHEL 7

Come utilizzare il comando cronologia su CentOS 8

Come modificare il nome host su CentOS 8

Come installare Scala 3 su RHEL 8 / CentOS 8