Gestion des utilisateurs et groupes sous Linux
Mise à jour :
Sous Linux, chaque utilisateur a un rôle. Chaque groupe organise des droits. C’est la base de la gestion des accès. Vous voulez créer un compte ? Modifier un groupe ? Ou supprimer un utilisateur ? Je vous montre comment faire, étape par étape, avec des commandes simples et des exemples concrets.
À quoi servent les utilisateurs et groupes sous Linux ?
Sous Linux, tout est question de sécurité et d’organisation.
Un utilisateur représente une identité unique sur le système. Il peut être un humain, un script ou un service. Chaque utilisateur a son propre espace de travail (répertoire personnel), ses fichiers, et ses droits.
Un groupe, lui, rassemble plusieurs utilisateurs qui partagent les mêmes permissions sur des fichiers ou des ressources. Plutôt que de gérer les droits individuellement, on les attribue à un groupe : simple, propre et scalable.
Exemple concret :
Imaginons une équipe de développement. On crée un groupe dev
,
on donne l’accès en écriture au dossier /projets/dev
, puis on ajoute les
développeurs au groupe. Plus besoin de tout reconfigurer pour chaque nouvel
arrivant !
Lister les utilisateurs et les groupes présents
Avant toute manipulation, il faut savoir qui est présent sur le système. Linux enregistre tous les utilisateurs et groupes dans des fichiers texte. Un coup d’œil suffit pour voir ce qu’il y a déjà.
Afficher la liste des utilisateurs
Les informations sur les utilisateurs sont stockées dans le fichier
/etc/passwd
. Chaque ligne correspond à un utilisateur.
Pour lister tous les noms d’utilisateurs :
cut -d: -f1 /etc/passwd
Cette commande découpe chaque ligne sur le caractère :
et affiche la première
colonne, soit le nom des utilisateurs. C’est simple et rapide.
Voir les détails d’un utilisateur
Envie de creuser un peu ? Pour afficher toutes les infos sur un utilisateur spécifique, utilisez :
getent passwd nom_utilisateur
Cela montre le répertoire personnel, le shell, et même l’UID (identifiant utilisateur).
Afficher la liste des groupes
Même principe pour les groupes. Ils sont listés dans /etc/group
.
Pour voir tous les groupes existants :
cut -d: -f1 /etc/group
Encore une fois, c’est le nom de chaque groupe qui s’affiche. Pratique pour vérifier ce qui est déjà configuré.
Savoir à quels groupes appartient un utilisateur
Vous voulez savoir à quels groupes appartient un utilisateur ? C’est très courant.
groups nom_utilisateur
Par exemple :
groups paul
Vous verrez s’il est membre de plusieurs groupes. C’est utile pour gérer ses droits d’accès.
Création et gestion des groupes
Les groupes sous Linux permettent de gérer des droits collectivement. Plutôt que de définir des permissions utilisateur par utilisateur, on regroupe. C’est pratique, propre, et puissant.
Créer un groupe
Pour créer un nouveau groupe, rien de plus simple :
sudo groupadd developpeurs
Ce groupe est maintenant disponible, et vous pouvez y ajouter des utilisateurs.
Ajouter un utilisateur à un groupe
Il existe deux types d’appartenance : primaire et secondaire.
- Le groupe primaire est attribué à la création du compte.
- Les groupes secondaires permettent à l’utilisateur d’avoir plusieurs appartenances.
Pour ajouter “paul” au groupe “developpeurs” :
sudo usermod -aG developpeurs paul
-a
: ajoute sans retirer les autres groupes-G
: liste des groupes secondaires
Sans -a
, vous risqueriez d’effacer toutes les autres appartenances !
Vérifier les groupes d’un utilisateur
Pour voir à quels groupes appartient “paul” :
groups paul
Vous verrez le groupe principal suivi des groupes secondaires.
Supprimer un utilisateur d’un groupe
Si vous devez retirer un utilisateur d’un groupe :
sudo gpasswd -d paul developpeurs
La commande est simple, mais elle ne modifie pas le groupe principal.
Supprimer un groupe
Si un groupe ne sert plus, vous pouvez le supprimer :
sudo groupdel developpeurs
Attention : cela ne supprime pas les utilisateurs, seulement le groupe lui-même.
Modifier le groupe principal d’un utilisateur
Vous pouvez aussi changer le groupe principal :
sudo usermod -g developpeurs paul
Cela peut être utile si le groupe principal par défaut (users
) n’a plus de
sens pour ce compte.
Création d’un nouvel utilisateur
Ajouter un nouvel utilisateur sous Linux, c’est simple. Mais attention : il faut le faire correctement pour qu’il ait un répertoire personnel et les droits de base.
Créer un utilisateur avec un répertoire personnel
La commande de base, c’est useradd
. Mais seule, elle ne crée pas le répertoire
personnel. Il faut ajouter l’option -m
:
sudo useradd -m paul
Cette commande crée un utilisateur “paul” avec un répertoire /home/paul
.
Sans -m
, pas de dossier personnel. Et ça peut poser problème.
Définir un mot de passe
Une fois l’utilisateur créé, il faut lui attribuer un mot de passe. Sinon, il ne pourra pas se connecter :
sudo passwd paul
Le système vous demande de taper deux fois le mot de passe. Rien ne s’affiche à l’écran, c’est normal.
Créer un utilisateur avec des options personnalisées
Vous pouvez aussi personnaliser le shell, le groupe principal, ou même choisir un UID :
sudo useradd -m -s /bin/bash -g users -u 1050 pierre
Ici, l’utilisateur “pierre” :
- utilise
/bin/bash
comme shell par défaut - appartient au groupe “users”
- a l’UID 1050
Vérifier que l’utilisateur a bien été créé
Pour vérifier les infos d’un utilisateur :
getent passwd paul
Et pour voir son répertoire :
ls -ld /home/paul
Vous vous assurez ainsi qu’il a bien un environnement fonctionnel.
Créer un utilisateur, c’est plus qu’un simple nom. Il faut penser à ses droits, son environnement, son intégration dans le système.
Modification des informations d’un utilisateur
Un utilisateur change de nom ? Vous voulez modifier son shell ou son répertoire
personnel ? Tout ça se fait avec usermod
. Mais attention, certaines opérations
demandent des précautions.
Changer le nom d’un utilisateur
Pour renommer un utilisateur, utilisez l’option -l
:
sudo usermod -l pierre paul
Ici, “paul” devient “pierre”. Mais son répertoire reste /home/paul
, sauf
si vous le déplacez manuellement.
Je recommande de faire ça quand l’utilisateur n’est pas connecté. Sinon, cela peut provoquer des erreurs.
Modifier le répertoire personnel
Pour changer le dossier personnel et déplacer les fichiers :
sudo usermod -d /home/pierre -m pierre
L’option -d
définit le nouveau chemin, et -m
déplace automatiquement les
fichiers de l’ancien dossier.
Changer le shell par défaut
Par défaut, certains utilisateurs ont /bin/sh
. Vous pouvez leur attribuer Bash
ou Zsh :
sudo usermod -s /bin/bash pierre
C’est utile si vous avez installé un shell plus convivial et que vous voulez l’utiliser partout.
Modifier l’UID ou le GID principal
Pour modifier l’identifiant utilisateur (UID) :
sudo usermod -u 1100 pierre
Et pour changer le groupe principal (GID) :
sudo usermod -g dev pierre
Pensez à vérifier les permissions des fichiers après un changement d’UID ou
de GID. Il peut être nécessaire de les mettre à jour avec chown
.
Vérifier les changements
Pour s’assurer que tout est en ordre :
getent passwd pierre
Et pour voir son groupe :
id pierre
Modifier un utilisateur, ce n’est pas anodin. À mon avis, il vaut mieux faire une sauvegarde du dossier personnel avant les grosses modifications, surtout si vous changez le nom ou le répertoire.
Suppression d’un utilisateur
Parfois, il faut faire du ménage. Supprimer un ancien compte, désactiver un
utilisateur temporaire, ou effacer ses fichiers. Sous Linux, ça se fait
simplement avec userdel
.
Supprimer un utilisateur sans toucher aux fichiers
La commande de base est :
sudo userdel pierre
Cette commande retire l’utilisateur du système, mais laisse son répertoire personnel et ses fichiers intacts. C’est utile si vous voulez garder une trace ou archiver ses données.
Supprimer un utilisateur et son dossier personnel
Si vous voulez tout effacer, y compris le répertoire /home
:
sudo userdel -r pierre
L’option -r
supprime aussi :
- le répertoire personnel
- les fichiers appartenant à l’utilisateur dans
/home
- les boîtes mail locales, si elles existent
Attention : cette action est définitive. Aucun retour en arrière possible.
Vérifier que l’utilisateur n’est plus présent
Après suppression, vous pouvez vérifier :
getent passwd pierre
Si rien ne s’affiche, c’est bon signe. L’utilisateur a été supprimé.
Et les fichiers ailleurs ?
Si l’utilisateur avait des fichiers dans d’autres répertoires (/var/www
,
/opt
…), ils ne sont pas supprimés automatiquement. Vous pouvez les
retrouver avec :
find / -user pierre
Cela liste tous les fichiers appartenant encore à l’ancien utilisateur.
À mon avis, il est toujours bon de faire un tour d’horizon avant d’effacer complètement un compte. Parfois, on découvre des fichiers importants qu’on n’avait pas repérés.
Gestion des permissions
Sous Linux, chaque fichier et dossier appartient à un utilisateur et un groupe. Les permissions permettent de contrôler qui peut lire, écrire ou exécuter ces fichiers. C’est un pilier de la sécurité du système.
Comprendre les permissions
Chaque fichier a trois niveaux de droits :
- Utilisateur (u) : le propriétaire
- Groupe (g) : le groupe associé
- Autres (o) : tous les autres utilisateurs
Et trois types de droits :
- r : lecture
- w : écriture
- x : exécution
Pour voir les permissions d’un fichier :
ls -l script.sh
Exemple :
-rwxr-xr-- 1 paul developpeurs 1024 avril 6 09:00 script.sh
Ici, “paul” a tous les droits, le groupe peut lire et exécuter, les autres peuvent seulement lire.
Modifier les permissions avec chmod
Vous pouvez modifier les permissions avec des valeurs symboliques ou numériques.
- Méthode symbolique :
chmod u+x script.sh
Ajoute le droit d’exécution au propriétaire.
- Méthode numérique :
chmod 755 script.sh
- 7 : lecture + écriture + exécution (4+2+1)
- 5 : lecture + exécution (4+1)
- 5 : lecture + exécution (4+1)
Modifier le propriétaire avec chown
Changer le propriétaire d’un fichier :
sudo chown paul script.sh
Changer propriétaire et groupe :
sudo chown paul:developpeurs script.sh
Modifier le groupe avec chgrp
Si vous voulez changer seulement le groupe :
sudo chgrp developpeurs script.sh
C’est utile quand un fichier doit être partagé entre plusieurs membres du même groupe.
Appliquer des permissions sur un répertoire
Les répertoires fonctionnent comme les fichiers, mais :
- x permet d’entrer dans le dossier
- r permet de lister les fichiers
- w permet de créer ou supprimer des fichiers
Exemple :
chmod 750 /projets
- Le propriétaire peut tout faire
- Le groupe peut lire et entrer
- Les autres n’ont aucun accès
Verrouillage et déverrouillage d’un compte utilisateur
Parfois, il ne suffit pas de supprimer un compte. On veut juste le bloquer temporairement, sans perdre les fichiers ni les réglages. C’est là qu’interviennent les commandes de verrouillage.
Verrouiller un compte
Pour empêcher un utilisateur de se connecter, on peut verrouiller son mot de passe :
sudo passwd -l paul
Cette commande ajoute un !
devant le mot de passe dans /etc/shadow
, ce qui
bloque la connexion.
- Le compte existe toujours
- Le répertoire personnel est conservé
- Les fichiers restent accessibles par root
C’est idéal pour suspendre un accès sans tout supprimer.
Déverrouiller un compte
Quand tout est réglé, on peut réactiver le compte :
sudo passwd -u paul
Le mot de passe redevient utilisable. L’utilisateur peut se reconnecter normalement.
Alternative avec usermod
Il est aussi possible de désactiver complètement un compte avec :
sudo usermod -L paul
Et pour le réactiver :
sudo usermod -U paul
La différence ? usermod
agit sur le verrouillage du compte global, pas
seulement sur le mot de passe. Cela peut bloquer aussi certaines
authentifications automatiques.
Pour vérifier si un compte est verrouillé
Consultez le fichier /etc/shadow
:
sudo grep paul /etc/shadow
Un !
ou *
au début du champ du mot de passe indique un compte verrouillé.
Bonnes pratiques en gestion des utilisateurs et groupes
Avec l’expérience, on découvre vite que de simples oublis ou approximations peuvent poser problème. Voici les bonnes pratiques que je recommande pour garder un système propre, sécurisé et facile à maintenir.
Utiliser des conventions de nommage
Adoptez une règle claire pour nommer vos utilisateurs et groupes :
- Privilégiez les minuscules, sans accents ni espaces.
- Utilisez un format cohérent :
prenom.nom
,user01
, etc. - Pour les groupes, choisissez des noms liés à l’activité :
dev
,infra
,compta
.
Cela rend le système plus lisible, surtout quand il y a beaucoup d’utilisateurs.
Ne jamais modifier manuellement /etc/passwd
ou /etc/group
Même si ce sont des fichiers texte, il vaut mieux éviter de les éditer à la main. Utilisez toujours les commandes :
usermod
pour modifier un utilisateurgroupmod
pour modifier un groupe
Un mauvais caractère dans ces fichiers peut rendre le système instable.
Attribuer un mot de passe fort dès la création
Utilisez des outils comme pwgen
ou openssl
pour générer des mots de passe
solides :
pwgen -s 12 1
Ensuite, changez le mot de passe avec :
sudo passwd nom_utilisateur
Et pensez à obliger l’utilisateur à le modifier à la première connexion :
sudo chage -d 0 nom_utilisateur
Gérer les groupes plutôt que les permissions individuelles
C’est un point que j’insiste souvent : évitez de gérer les droits un par un. Créez des groupes fonctionnels et attribuez-leur les bonnes permissions. Ensuite, ajoutez les utilisateurs aux bons groupes.
Cela rend le système beaucoup plus simple à auditer et à modifier.
Supprimer les comptes inutilisés
Un compte inutilisé, c’est un risque de sécurité. Vérifiez régulièrement la liste des utilisateurs :
lastlog
Et verrouillez ou supprimez ceux qui ne sont plus actifs.
Documenter vos actions
Notez chaque création ou suppression d’utilisateur, surtout en environnement professionnel. Un simple fichier texte partagé peut suffire.
- Qui a été ajouté ?
- À quels groupes ?
- Par qui ?
- Pourquoi ?
Cela facilite le suivi et la maintenance à long terme.
Utiliser sudo
plutôt que root
direct
Donnez à vos utilisateurs les droits nécessaires via
sudo
, au lieu de leur donner un accès
root complet. Configurez /etc/sudoers
proprement et limitez les commandes
sensibles.
Conclusion
Gérer les utilisateurs et groupes sous Linux, ce n’est pas compliqué. Mais c’est essentiel. À mon avis, c’est même la base de toute administration système bien faite.
Créer un utilisateur, lui donner les bons droits, l’ajouter à un groupe, verrouiller un compte temporairement… toutes ces actions vous permettent de maîtriser l’accès à votre système.
Voici un petit récapitulatif des commandes utiles :
useradd
,usermod
,userdel
pour les utilisateursgroupadd
,gpasswd
,groupdel
pour les groupeschmod
,chown
,chgrp
pour les permissionspasswd -l
etpasswd -u
pour verrouiller ou réactiver un compte
Pensez toujours à vérifier ce que vous faites, surtout avec les options qui
suppriment des données (-r
par exemple). Un petit oubli peut avoir de
grosses conséquences.
Enfin, je vous conseille de tester vos commandes sur une machine de test avant de les appliquer en production. On apprend en expérimentant.
Et si vous avez besoin d’un mémo plus complet sur les commandes Linux, jetez un œil à ce guide en ligne très complet ↗. Vous y trouverez plein d’astuces pour progresser encore.