La question ici est que lorsqu'un utilisateur connecté se déconnecte de la session ssh, le système doit exécuter un script ou une commande spécifique. Cela revient donc à configurer un post-script ou un déclencheur pour effectuer l'action souhaitée lorsque l'utilisateur est déconnecté de la session ssh.
Cela peut être facilement fait à l'aide du module pam dans les systèmes CentOS/RHEL. Suivez les étapes décrites ci-dessous pour configurer le module pam.
1. Ajoutez l'entrée ci-dessous au fichier de configuration pam /etc/pam.d/sshd :
# vi /etc/pam.d/sshd session optional pam_exec.so quiet /var/tmp/post_session.sh
Ici,
/var/tmp/post_session.sh est notre script qui s'exécutera lorsque l'utilisateur sera déconnecté.
Le fichier de configuration /etc/pam.d/sshd devrait ressembler à ceci :
# 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. Vous pouvez maintenant configurer le script de post-déclencheur selon vos besoins. Pour les besoins de cet article, je vais simplement ajouter l'heure de déconnexion de l'utilisateur dans un fichier. Par exemple :
# 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. Accordez l'autorisation d'exécution au script /var/tmp/post_session.sh.
# chmod ugo+x /var/tmp/post_session.sh
4. Vérifiez en vous connectant et en vous déconnectant plusieurs fois et vous devriez obtenir l'heure de toutes les déconnexions ajoutées au fichier /var/tmp/user_logout.out .