Gestion du temps d’inactivité d’un shell
I. Présentation
Il peut parfois arriver lorsqu'une connexion shell est établie sur un poste (SSH ou direct) d'oublier par négligence de fermer cet accès créant ainsi une ouverture à d'éventuelles attaques physiques. On peut imaginer qu'en allant sur une urgence ou en simple pause, une autre personne vienne sur le poste pour prendre le contrôle de l'accès SSH ou TTY de votre machine. Nous allons donc configurer notre shell pour qu'il se ferme automatiquement au bout de quelques minutes d'inactivité.
Nous allons faire en sorte qu’au bout de 5 minutes d’inactivité, le bash se ferme automatiquement. Cela évitera que si, par négligence, on laisse ouvert un terminal sur notre serveur et quelqu’un puisse venir derrière le prendre pour l’utiliser en ayant alors un accès total à la machine.
Dans le « man » de bash, nous apprenons que la valeur « TMOUT » pour « Timeout » (délai d’expiration) est le délai d’inactivité en seconde après lequel une session sera déconnectée.
II. Procédure
Il est possible de spécifier ce paramètre dans « ~/.bashrc » (ou « ~ » est le compte de l’utilisateur). Ce fichier étant chargé automatiquement au lancement d’un bash, c'est-à-dire d’un shell, ou si vous préférez au lancement d’une session. Par exemple pour « root », nous allons modifier le fichier « /root/.bashrc » pour ajouter le paramètre suivant :
TMOUT=300
Le délai à indiquer est en seconde (300 secondes = 5 minutes). Nous devons ensuite recharger la session terminale pour reprendre les nouveaux paramètres avec la commande :
cd /root sources .bashrc
Ainsi, au bout de 5 minutes d’inactivité, nous aurons donc ce message d’erreur :
L’inactivité d’une session n’est donc plus un problème car celle-ci est déconnectée automatiquement après un certain laps de temps.
Pour appliquer ce paramètre à tous les utilisateurs, il faut aller configurer le fichier « /etc/bash.bashrc » qui est le fichier sur lequel se base tous les « ~/.bashrc » des utilisateurs puis exécuter la commande suivante afin de mettre à jours les bash :
source /etc/bash.bashrc
Note : Le fichier « /etc/bash.bashrc » est parfois nommé « /etc/bashrc ».