GNU/Linux >> Znalost Linux >  >> Cent OS

CentOS/RHEL – Jak spustit skript nebo příkaz, když se jakýkoli uživatel odhlásí z relace ssh

Požadavek je, když se přihlášený uživatel odhlásí z relace ssh, systém musí provést specifický skript nebo příkaz. Je to jako konfigurovat post skript nebo spouštěč k provedení požadované akce, když je uživatel odhlášen z relace ssh.

To lze snadno provést pomocí modulu pam v systémech CentOS/RHEL. Při konfiguraci modulu pam postupujte podle kroků uvedených níže.

1. Přidejte níže uvedený záznam do konfiguračního souboru pam /etc/pam.d/sshd :

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

Zde,
/var/tmp/post_session.sh je náš skript, který se spustí, když je uživatel odhlášen.

Konfigurační soubor /etc/pam.d/sshd by měl vypadat takto:

# 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. Nyní můžete nakonfigurovat spouštěcí skript post podle vašich požadavků. V zájmu tohoto příspěvku pouze připojím čas odhlášení uživatele do souboru. Například:

# 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. Udělte oprávnění ke spuštění skriptu /var/tmp/post_session.sh.

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

4. Ověřte opakovaným přihlášením a odhlášením a měli byste získat čas všech odhlášení přidaných do souboru /var/tmp/user_logout.out .


Cent OS
  1. Jak zobrazit běžící procesy libovolného uživatele v SSH?

  2. Jak spustit rsyslog jako uživatel bez root v CentOS/RHEL 7

  3. CentOS / RHEL :Jak zjistit, který uživatel spouští konkrétní příkaz?

  1. CentOS / RHEL 7 :Jak upravit příkazový řádek jádra

  2. jak přidat vlastní skript do systemd v CentOS/RHEL 7

  3. Jak provést příkaz Pstack na CentOS/RHEL

  1. Jak automaticky spustit ntpdate při spouštění NTPD v CentOS/RHEL 5

  2. CentOS / RHEL :Jak změnit přihlašovací shell uživatele

  3. Jak spustit příkaz jako konkrétní uživatel ve skriptu init?