Désactiver les connexions utilisateurs sous Linux est essentiel pour sécuriser les systèmes, contrôler les accès et préserver la stabilité des environnements partagés. Ce besoin touche autant les administrateurs systèmes en entreprise que les utilisateurs avancés à domicile.
Dans cet article, nous explorons les méthodes recommandées pour restreindre ou bloquer les connexions, dans le respect des meilleures pratiques de sécurité.
À retenir :
- Verrouiller un compte Linux n’implique pas forcément sa suppression, il existe des alternatives réversibles.
- Le shell
/sbin/nologinou la création du fichier/etc/nologinsont des solutions efficaces pour bloquer l’accès. - Les règles réseau, scripts et politiques de sécurité automatisent la gestion d’accès à grande échelle.
Sécuriser un compte Linux sans le supprimer
“Désactiver un utilisateur ne veut pas dire l’effacer, mais le protéger.”
Alain Lorent, expert systèmes
Lorsqu’un utilisateur ne doit plus accéder au système temporairement ou définitivement, désactiver les connexions Linux permet de bloquer ses actions tout en gardant ses fichiers et permissions intactes.
Verrouillage via commandes système
Deux commandes simples permettent de verrouiller un compte utilisateur :
usermod -L nom_utilisateur: ajoute un caractère!devant le mot de passe.passwd -l nom_utilisateur: rend le mot de passe inutilisable.
Ces méthodes sont réversibles via usermod -U ou passwd -u.
Changement de shell vers /sbin/nologin
Modifier le shell empêche l’ouverture d’une session :
usermod -s /sbin/nologin nom_utilisateur
Ce mécanisme est discret et efficace. Il peut être combiné à une alerte via /etc/nologin.
« J’ai utilisé cette méthode sur nos serveurs en production pour isoler les comptes temporaires tout en préservant les logs. »
Témoignage d’un sysadmin freelance
Gérer les accès pendant les périodes de maintenance
Désactiver l’accès aux utilisateurs pendant des interventions critiques permet d’éviter tout incident. La commande Linux /etc/nologin est la plus directe.
Création d’un fichier /etc/nologin
Il suffit de créer ce fichier avec un message personnalisé :
echo « Maintenance en cours. Veuillez réessayer plus tard. » > /etc/nologin
Tous les utilisateurs (sauf root) sont bloqués avec ce message.
Désactivation programmée via chage
Pour planifier une expiration :
chage -E 2025-04-30 nom_utilisateur
C’est utile pour les comptes temporaires ou en fin de contrat.
« Grâce à chage, nous avons automatisé les expirations d’accès pour les stagiaires de fin de mission. »
Retour d’expérience d’un DSI en milieu académique
Appliquer les politiques de sécurité d’entreprise
“L’automatisation est la clé pour respecter la conformité des accès.”
Pascal Deniau, auditeur en cybersécurité
Certaines industries doivent documenter et automatiser la désactivation d’accès utilisateur pour répondre à des normes strictes (RGPD, ISO 27001, PCI DSS…).
Scripts d’automatisation
Un script Bash peut regrouper les étapes de verrouillage, changement de shell et notification :
#!/bin/bash
usermod -L $1
usermod -s /sbin/nologin $1
logger « Compte $1 désactivé selon politique interne »
Journalisation dans /var/log/secure
Pour assurer la traçabilité, chaque action doit être loguée.
« Un script déclenché par webhook via GitLab CI nous a permis de désactiver automatiquement les comptes en fin de projet. »
Témoignage d’un responsable DevOps
Tableau des principales méthodes de désactivation d’utilisateur sous Linux
| Méthode | Commande principale | Effet | Réversibilité |
|---|---|---|---|
| Verrouillage par mot de passe | passwd -l user | Désactive le login | Oui |
| Verrouillage du compte | usermod -L user | Rend le compte inutilisable | Oui |
| Shell non interactif | usermod -s /sbin/nologin user | Bloque la session | Oui |
Fichier /etc/nologin | echo > /etc/nologin | Désactive tous les comptes | Oui |
| Expiration planifiée | chage -E YYYY-MM-DD user | Compte expiré à date donnée | Oui |
Utiliser les outils réseau pour bloquer l’accès SSH
“Limiter les connexions SSH, c’est construire la première ligne de défense.”
Julien Fort, architecte réseau
Empêcher les connexions SSH est une solution directe pour bloquer l’accès distant à un compte.
Modifier le fichier sshd_config
Bloquer le login root :
PermitRootLogin no
Restreindre certains utilisateurs :
DenyUsers utilisateur1 utilisateur2
Filtrage par adresse IP avec iptables
Permet de bloquer ou autoriser des plages d’adresses :
iptables -A INPUT -s 192.168.1.0/24 -p tcp –dport 22 -j ACCEPT
« Nous avons mis en place ce système sur un serveur exposé à l’international. Depuis, les tentatives de brute force ont chuté de 95%. »
Administrateur réseau chez un hébergeur cloud
Et vous, quelles méthodes utilisez-vous pour désactiver un utilisateur sous Linux ? Partagez vos pratiques ou astuces dans les commentaires !