Ce bref didacticiel explique trois façons différentes de déconnecter automatiquement les utilisateurs inactifs après une période donnée dans les systèmes Linux et de type Unix.
Imaginez ce scénario. Vous gérez un serveur partagé auquel de nombreux utilisateurs accèdent régulièrement à partir de tous les systèmes du réseau.
Il y a des chances qu'un utilisateur oublie de se déconnecter de sa session et laisse la session ouverte. Laisser une session utilisateur ouverte est dangereux et certains utilisateurs peuvent en abuser intentionnellement.
Souhaitez-vous vérifier manuellement chaque système pour vérifier si les utilisateurs se sont déconnectés ou non ? Ce n'est pas nécessaire! De plus, cela prend beaucoup de temps s'il y a des centaines de machines dans votre réseau.
Au lieu de cela, vous pouvez obliger un utilisateur à se déconnecter automatiquement d'une session locale ou SSH après une période d'inactivité particulière.
Déconnexion automatique des utilisateurs inactifs sous Linux
Nous pouvons déconnecter automatiquement les sessions utilisateur inactives après un certain temps de trois manières. Voyons la première méthode.
Méthode 1 :
Modifier ~/.bashrc
ou ~/.bash_profile
fichier :
$ nano ~/.bashrc
Ou,
$ nano ~/.bash_profile
Ajoutez la ligne suivante à la fin :
TMOUT=100
Configurer la valeur du délai d'expiration de l'utilisateur sous Linux
Cela oblige l'utilisateur à se déconnecter automatiquement après une inactivité de 100 secondes. Vous pouvez définir cette valeur selon votre convenance. Appuyez sur ESC
et tapez :wq
pour enregistrer le fichier et le fermer.
Appliquez les modifications en exécutant la commande suivante :
$ source ~/.bashrc
Ou,
$ source ~/.bash_profile
Maintenant, laissez la session inactive pendant 100 secondes. Après une inactivité de 100 secondes, vous verrez le message suivant et l'utilisateur sera automatiquement déconnecté de la session.
timed out waiting for input: auto-logout Connection to 192.168.122.181 closed.
Déconnexion automatique des utilisateurs inactifs sous Linux
Ce paramètre peut être facilement modifié par l'utilisateur. Parce que, ~/.bashrc
le fichier appartient à l'utilisateur lui-même.
Pour modifier ou supprimer les paramètres de délai d'attente, supprimez simplement les lignes ajoutées ci-dessus et appliquez les modifications en exécutant la commande suivante :
$ source ~/.bashrc
Alternativement, l'utilisateur peut le désactiver en exécutant les commandes suivantes :
$ export TMOUT=0
Ou,
$ unset TMOUT
Étant donné que le paramètre de délai d'attente est stocké dans le ~/.bashrc
appartenant à l'utilisateur fichier, il peut facilement le contourner en supprimant simplement la ligne. Si vous souhaitez empêcher l'utilisateur de modifier les paramètres, suivez la deuxième méthode.
Méthode 2 :
Connectez-vous en tant que root
utilisateur.
Créez un nouveau fichier appelé "autologout.sh"
.
# vi /etc/profile.d/autologout.sh
Ajoutez les lignes suivantes :
TMOUT=100 readonly TMOUT export TMOUT
Enregistrez et fermez le fichier.
Rendez-le exécutable à l'aide de la commande :
# chmod +x /etc/profile.d/autologout.sh
Déconnectez-vous ou redémarrez votre système pour que les modifications prennent effet.
L'utilisateur inactif sera automatiquement déconnecté après 100 secondes. L'utilisateur normal ne peut pas modifier ces paramètres même s'il souhaite rester connecté à la session. Ils seront jetés exactement après 100 secondes.
Ces deux méthodes s'appliquent à la fois à la session locale et à la session distante, c'est-à-dire les utilisateurs connectés localement ou les utilisateurs connectés à partir d'un système distant via SSH.
Dans la méthode suivante, nous allons voir comment déconnecter automatiquement uniquement les sessions SSH inactives, pas les sessions locales.
Méthode 3 :
Dans cette méthode, nous obligerons uniquement les utilisateurs de la session SSH à se déconnecter après une certaine période d'inactivité.
Modifier /etc/ssh/sshd_config
fichier :
$ sudo vi /etc/ssh/sshd_config
Ajoutez/modifiez les lignes suivantes :
ClientAliveInterval 100 ClientAliveCountMax 0
Appuyez sur ESC
clé et tapez :wq
pour enregistrer et fermer ce fichier. Redémarrez le service sshd pour appliquer les modifications.
$ sudo systemctl restart sshd
Maintenant, connectez-vous en ssh à ce système à partir d'un système distant. Après 100 secondes, la session ssh sera automatiquement fermée et vous verrez le message suivant :
$ Connection to 192.168.122.181 closed by remote host. Connection to 192.168.122.181 closed.
Désormais, toute personne accédant à ce système depuis un système distant via SSH sera automatiquement déconnectée après une inactivité de 100 secondes.