Je me connecte à un système via SSH et j'aimerais pouvoir forcer l'exécution d'une commande à la déconnexion, que ce soit une déconnexion intentionnelle (sortie du shell) ou parce que ma connexion SSH a chuté / s'est terminée. Existe-t-il un moyen de configurer cela? Ma meilleure supposition en ce moment est de changer le shell de connexion en un programme qui intercepte le signal envoyé à la fermeture SSH (SIGHUP?) Et exécute alors la commande, mais je me demande s'il existe une solution plus propre.
13
Réponses:
La meilleure façon de le faire serait d'utiliser pam .
Dans
/etc/pam.d
vous aurez plusieurs fichiers, l'un d'eux sera appelésshd
. Si vous souhaitez uniquement affecter ssh, et non les autres connexions (comme une interface graphique ou un vrai ATS), vous voulez ce fichier.Si vous souhaitez affecter toutes les connexions, vous aurez besoin d'un fichier «commun». Le nom de cet autre fichier «commun» varie selon la distribution, mais vous pouvez le retrouver en suivant les instructions
include
etsubstack
dans lesshd
fichier jusqu'à ce que vous arriviez au fichier de base.Une fois que vous avez identifié le fichier
/etc/pam.d
que vous souhaitez utiliser, ajoutez une ligne telle que la suivante à lasession
section:Cela se traduira par un appel
/etc/pam_session.sh
chaque fois que quelqu'un se connecte et se déconnecte (que ce soit gracieusement ou non).Il ne vous reste plus qu'à créer
/etc/pam_session.sh
. Voici un exemple que vous pouvez utiliser pour exécuter quelque chose à chaque fois que quelqu'un se déconnecte:(n'oubliez pas
chmod a+x
le script)la source