Gestion des utilisateurs sur un serveur Linux
Niveau : Débutant
Durée estimée : ~30 minutes
Objectif : Découvrir les outils en ligne de commande pour créer et gérer des comptes, configurer l'accès standard aux services et maintenir la disponibilité en toute sécurité.
Introduction
La gestion des utilisateurs sous Linux est une compétence fondamentale pour tout administrateur système. Un contrôle d'accès rigoureux garantit la stabilité, la sécurité et la traçabilité du serveur. Dans ce tutoriel, nous aborderons les bases de l'ajout de comptes, de l'attribution de privilèges (y compris l'élévation de privilèges sous Linux) et du maintien sécurisé de la configuration standard des services.
Prérequis
Avant de commencer, assurez-vous que les conditions suivantes sont remplies :
- Système d'exploitation : Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky Linux 8/9/10, RHEL 8/9/10
- Accès : accès sudo ou root au serveur via SSH
- Système : gestionnaire de paquets fonctionnel
- Connaissances requises : maîtrise de la ligne de commande Linux
Comprendre les concepts clés
Avant d'apporter des modifications, vous devez comprendre le fonctionnement des comptes :
- UID (User ID) : un identifiant numérique unique attribué à chaque utilisateur pour suivre la propriété et les permissions.
- GID (Group ID) : un identifiant numérique principal qui rattache un utilisateur à un groupe donné. Les groupes Linux permettent d'organiser plusieurs utilisateurs pour partager des permissions.
- Répertoire personnel (home) : le répertoire par défaut (
/home/username) où sont stockés les fichiers et configurations personnels d'un utilisateur. - Shell de connexion : l'interpréteur de commandes (comme
/bin/bash) qui démarre lorsqu'un utilisateur autorisé se connecte. Un utilisateur autorisé est un compte autorisé à accéder au système. - Mot de passe : une chaîne secrète de caractères utilisée pour l'authentification des utilisateurs sous Linux. L'authentification est le processus de vérification de l'identité d'un utilisateur.
- Adduser : un script interactif (front-end) servant à créer des comptes, principalement sur les systèmes Debian/Ubuntu.
- Useradd : un utilitaire binaire natif et de bas niveau servant à créer des comptes sur toutes les distributions Linux.
- Verrouillage de compte (Account lock) : l'action de désactiver les connexions par mot de passe afin de sécuriser le serveur.
- Expiration de compte (Account expiration) : l'action de désactiver automatiquement un compte à une date précise.
Étape 1 : Créer un nouvel utilisateur
Pour créer un nouvel utilisateur, on utilise la commande adduser (sur Debian/Ubuntu) ou la commande useradd (sur RHEL/AlmaLinux).
Dans les exemples ci-dessous, remplacez johndoe par le nom d'utilisateur de votre choix. Exécutez la commande suivante pour créer un utilisateur nommé johndoe :
sudo adduser johndoe
Il vous sera demandé de saisir un mot de passe et des informations facultatives sur l'utilisateur.
Sortie attendue :
La sortie contiendra des lignes relatives à la création du groupe, de l'utilisateur et du répertoire personnel, ainsi qu'à la copie de fichiers depuis /etc/skel. L'UID/GID exact dépend de votre système.
Sur RHEL/AlmaLinux, utilisez sudo useradd -m johndoe (l'option -m garantit la création de /home/johndoe) et définissez le mot de passe manuellement avec la commande passwd : sudo passwd johndoe.
Étape 2 : Comprendre sudo sur un serveur Linux
Les utilisateurs standard ne peuvent ni modifier la configuration du système ni installer de logiciels. La commande sudo de Linux permet aux utilisateurs autorisés d'exécuter des commandes avec les privilèges root.
2.1 Ajouter un utilisateur au groupe sudo
Le moyen le plus simple d'accorder des privilèges consiste à ajouter l'utilisateur au groupe d'administration prédéfini grâce à la commande usermod.
Ubuntu/Debian :
sudo usermod -aG sudo johndoe
RHEL/AlmaLinux :
sudo usermod -aG wheel johndoe
La commande usermod ajoute (-a) l'utilisateur au groupe supplémentaire (-G). L'utilisateur johndoe peut désormais exécuter des tâches d'administration en faisant précéder les commandes de sudo. En cas de succès, la commande n'affiche rien. Vous pouvez le vérifier avec groups johndoe : le groupe sudo (ou wheel) doit apparaître dans la liste.
Étape 3 : Modifier les propriétés d'un utilisateur
Vous pouvez avoir besoin de verrouiller un compte ou de changer son mot de passe.
3.1 Changer un mot de passe
Pour forcer un changement de mot de passe ou remplacer un mot de passe oublié, exécutez ce qui suit avec la commande passwd :
sudo passwd johndoe
Il vous sera demandé de saisir et de confirmer le nouveau mot de passe. Une fois l'opération terminée, l'utilisateur peut se connecter avec ses nouveaux identifiants.
3.2 Verrouiller un compte
Si un utilisateur quitte l'entreprise, vous devez effectuer un verrouillage de compte afin de sécuriser le serveur :
sudo usermod -L johndoe
Le compte est immédiatement verrouillé, ce qui empêche toute nouvelle connexion par mot de passe. Pour le déverrouiller par la suite, utilisez sudo usermod -U johndoe.
Ces deux commandes n'affichent rien. Vous pouvez vérifier l'état avec passwd -S johndoe (état L = verrouillé, P = actif).
3.3 Définir l'expiration d'un compte
Pour désactiver automatiquement un compte à une date précise, définissez une expiration de compte :
sudo usermod -e 2026-12-31 johndoe
Cela garantit que les prestataires temporaires perdent automatiquement leur accès.
Vous pouvez vérifier la date d'expiration avec sudo chage -l johndoe. Elle peut s'afficher avec un jour d'avance en raison du traitement de la limite UTC ; c'est normal et le compte expirera correctement.
Étape 4 : Utiliser la commande sudo de Linux en toute sécurité pour protéger le serveur
Le fichier sudoers (/etc/sudoers) contrôle précisément qui peut utiliser sudo et ce qu'il peut exécuter.
Pour modifier le fichier sudoers, utilisez toujours visudo. Il vérifie les erreurs de syntaxe avant l'enregistrement et évite ainsi de se retrouver verrouillé.
Une bonne pratique recommandée consiste à créer un fichier distinct pour chaque règle plutôt que de modifier le fichier principal :
sudo visudo -f /etc/sudoers.d/johndoe
Cela simplifie le retour arrière des règles et réduit le risque d'endommager la configuration principale de sudoers.
Pour autoriser johndoe à redémarrer le service de synchronisation de l'heure sans mot de passe, ajoutez la ligne adaptée à votre système d'exploitation :
Ubuntu/Debian :
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart systemd-timesyncd
RHEL/AlmaLinux :
johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart chronyd
Enregistrez et quittez. johndoe peut maintenant redémarrer le service sans qu'un mot de passe lui soit demandé.
L'utilisateur johndoe doit exécuter la commande sous la forme sudo systemctl restart systemd-timesyncd (ou chronyd), c'est-à-dire précisément via sudo. Un appel direct pour redémarrer le service sans sudo renverra une erreur polkit exigeant une authentification interactive.
Ne modifiez jamais les fichiers sudoers directement avec nano ou vim. Une erreur de syntaxe rendra l'accès sudo inutilisable pour l'ensemble du système et nécessitera un démarrage en mode de secours pour la corriger.
Étape 5 : Supprimer un utilisateur
Lorsqu'un compte n'est plus nécessaire, supprimez-le pour garder un serveur propre.
Pour supprimer l'utilisateur tout en conservant ses fichiers :
sudo deluser johndoe
Sur RHEL/AlmaLinux : sudo userdel johndoe
Exécuter la commande sans --remove-home (ou -r) laisse /home/johndoe et les fichiers de l'utilisateur sur le disque. C'est utile pour archiver des données, mais vous devez avoir conscience des fichiers restants.
Pour supprimer l'utilisateur et son répertoire personnel :
sudo deluser --remove-home johndoe
Sur RHEL/AlmaLinux : sudo userdel -r johndoe
Pour supprimer le fichier sudoers de l'utilisateur, s'il en a été créé un, exécutez :
sudo rm -f /etc/sudoers.d/johndoe
Le compte utilisateur est maintenant complètement supprimé du système.
Avant de supprimer un utilisateur, assurez-vous qu'aucun service en arrière-plan ne dépend de son UID ou de ses groupes Linux.
Vérification
Pour vérifier le nouvel utilisateur et ses appartenances à des groupes, utilisez la commande id :
id johndoe
Sortie attendue :
La sortie affichera l'UID, le GID (qui peut différer de 1001) et une liste de groupes. Vérifiez que le groupe sudo (Debian/Ubuntu) ou wheel (RHEL/AlmaLinux) est présent. Sur Debian/Ubuntu, le groupe users peut également apparaître dans la liste ; c'est normal.
Pour tester l'accès sudo, passez au nouvel utilisateur :
su - johndoe
Exécutez ensuite une commande nécessitant des privilèges :
sudo ls /root
Si le système vous le demande, saisissez le mot de passe de johndoe (celui défini à l'Étape 1), et non celui de root. Vous devriez voir le contenu du répertoire /root.
Dépannage
- Erreurs de syntaxe dans sudoers : si vous cassez accidentellement le fichier sudoers, vous pouvez souvent le réparer en exécutant
pkexec visudodepuis une autre session. Sipkexecn'est pas disponible, vous devrez démarrer le serveur en mode de récupération/mono-utilisateur pour modifier le fichier. - Accès sudo perdu : si vous perdez l'accès sudo mais disposez encore du mot de passe root, connectez-vous directement en tant que root (par exemple avec
su -) pour corriger les appartenances aux groupes. - Vérifier les privilèges d'un utilisateur : pour vérifier précisément quelles commandes un utilisateur peut exécuter, utilisez
sudo -l -U johndoe.
Retour arrière (rollback)
Si vous devez annuler les modifications apportées dans ce tutoriel :
- Retirez l'utilisateur du groupe sudo :
sudo gpasswd -d johndoe sudo(ouwheel). - Annulez tous les ajouts effectués via
visudo. - Supprimez l'utilisateur et son répertoire personnel :
sudo deluser --remove-home johndoe(ousudo userdel -r johndoe). - Supprimez son fichier sudoers dédié :
sudo rm -f /etc/sudoers.d/johndoe.
Conclusion
Une configuration correcte des comptes vous permet de gérer les utilisateurs sous Linux en toute sécurité, sans compromettre la sécurité du système. En maîtrisant la commande adduser, la commande usermod et la commande passwd, ainsi qu'une configuration sudo sécurisée, vous maintenez un environnement stable et traçable.
Version du document : 1.0
Dernière mise à jour : mai 2026
Propriétaire : Équipe de documentation technique