Aller au contenu
Administration Linux medium

Gestion des utilisateurs et groupes sous Linux

16 min de lecture

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 ?

Section intitulée « À 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 !

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à.

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 :

Fenêtre de terminal
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.

Envie de creuser un peu ? Pour afficher toutes les infos sur un utilisateur spécifique, utilisez :

Fenêtre de terminal
getent passwd nom_utilisateur

Cela montre le répertoire personnel, le shell et même l’UID (identifiant utilisateur).

Même principe pour les groupes. Ils sont listés dans /etc/group.

Pour voir tous les groupes existants :

Fenêtre de terminal
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é.

Vous voulez savoir à quels groupes appartient un utilisateur ? C’est très courant.

Fenêtre de terminal
groups nom_utilisateur

Par exemple :

Fenêtre de terminal
groups paul

Vous verrez s’il est membre de plusieurs groupes. C’est utile pour gérer ses droits d’accès.

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.

Pour créer un nouveau groupe, rien de plus simple :

Fenêtre de terminal
sudo groupadd developpeurs

Ce groupe est maintenant disponible et vous pouvez y ajouter des utilisateurs.

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” :

Fenêtre de terminal
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 !

Pour voir à quels groupes appartient “paul” :

Fenêtre de terminal
groups paul

Vous verrez le groupe principal suivi des groupes secondaires.

Si vous devez retirer un utilisateur d’un groupe :

Fenêtre de terminal
sudo gpasswd -d paul developpeurs

La commande est simple, mais elle ne modifie pas le groupe principal.

Si un groupe ne sert plus, vous pouvez le supprimer :

Fenêtre de terminal
sudo groupdel developpeurs

Attention : cela ne supprime pas les utilisateurs, seulement le groupe lui-même.

Vous pouvez aussi changer le groupe principal :

Fenêtre de terminal
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.

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

Section intitulée « 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 :

Fenêtre de terminal
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.

Une fois l’utilisateur créé, il faut lui attribuer un mot de passe. Sinon, il ne pourra pas se connecter :

Fenêtre de terminal
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

Section intitulée « Créer un utilisateur avec des options personnalisées »

Vous pouvez aussi personnaliser le shell, le groupe principal, ou même choisir un UID :

Fenêtre de terminal
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

Pour vérifier les infos d’un utilisateur :

Fenêtre de terminal
getent passwd paul

Et pour voir son répertoire :

Fenêtre de terminal
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.

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.

Pour renommer un utilisateur, utilisez l’option -l :

Fenêtre de terminal
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.

Pour changer le dossier personnel et déplacer les fichiers :

Fenêtre de terminal
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.

Par défaut, certains utilisateurs ont /bin/sh. Vous pouvez leur attribuer Bash ou Zsh :

Fenêtre de terminal
sudo usermod -s /bin/bash pierre

C’est utile si vous avez installé un shell plus convivial et que vous voulez l’utiliser partout.

Pour modifier l’identifiant utilisateur (UID) :

Fenêtre de terminal
sudo usermod -u 1100 pierre

Et pour changer le groupe principal (GID) :

Fenêtre de terminal
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.

Pour s’assurer que tout est en ordre :

Fenêtre de terminal
getent passwd pierre

Et pour voir son groupe :

Fenêtre de terminal
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.

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

Section intitulée « Supprimer un utilisateur sans toucher aux fichiers »

La commande de base est :

Fenêtre de terminal
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.

Si vous voulez tout effacer, y compris le répertoire /home :

Fenêtre de terminal
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

Section intitulée « Vérifier que l’utilisateur n’est plus présent »

Après suppression, vous pouvez vérifier :

Fenêtre de terminal
getent passwd pierre

Si rien ne s’affiche, c’est bon signe. L’utilisateur a été supprimé.

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 :

Fenêtre de terminal
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.

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.

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 :

Fenêtre de terminal
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.

Vous pouvez modifier les permissions avec des valeurs symboliques ou numériques.

  • Méthode symbolique :
Fenêtre de terminal
chmod u+x script.sh

Ajoute le droit d’exécution au propriétaire.

  • Méthode numérique :
Fenêtre de terminal
chmod 755 script.sh
  • 7 : lecture + écriture + exécution (4+2+1)
  • 5 : lecture + exécution (4+1)
  • 5 : lecture + exécution (4+1)

Changer le propriétaire d’un fichier :

Fenêtre de terminal
sudo chown paul script.sh

Changer propriétaire et groupe :

Fenêtre de terminal
sudo chown paul:developpeurs script.sh

Si vous voulez changer seulement le groupe :

Fenêtre de terminal
sudo chgrp developpeurs script.sh

C’est utile quand un fichier doit être partagé entre plusieurs membres du même groupe.

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 :

Fenêtre de terminal
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

Section intitulée « 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.

Pour empêcher un utilisateur de se connecter, on peut verrouiller son mot de passe :

Fenêtre de terminal
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.

Quand tout est réglé, on peut réactiver le compte :

Fenêtre de terminal
sudo passwd -u paul

Le mot de passe redevient utilisable. L’utilisateur peut se reconnecter normalement.

Il est aussi possible de désactiver complètement un compte avec :

Fenêtre de terminal
sudo usermod -L paul

Et pour le réactiver :

Fenêtre de terminal
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.

Consultez le fichier /etc/shadow :

Fenêtre de terminal
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

Section intitulée « 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.

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

Section intitulée « 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 utilisateur
  • groupmod pour modifier un groupe

Un mauvais caractère dans ces fichiers peut rendre le système instable.

Utilisez des outils comme pwgen ou openssl pour générer des mots de passe solides :

Fenêtre de terminal
pwgen -s 12 1

Ensuite, changez le mot de passe avec :

Fenêtre de terminal
sudo passwd nom_utilisateur

Et pensez à obliger l’utilisateur à le modifier à la première connexion :

Fenêtre de terminal
sudo chage -d 0 nom_utilisateur

Gérer les groupes plutôt que les permissions individuelles

Section intitulée « 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.

Un compte inutilisé, c’est un risque de sécurité. Vérifiez régulièrement la liste des utilisateurs :

Fenêtre de terminal
lastlog

Et verrouillez ou supprimez ceux qui ne sont plus actifs.

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.

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.

Contrôle de connaissances

Validez vos connaissances avec ce quiz interactif

10 questions
5 min.
80%

Informations

  • Le chronomètre démarre au clic sur Démarrer
  • Questions à choix multiples, vrai/faux et réponses courtes
  • Vous pouvez naviguer entre les questions
  • Les résultats détaillés sont affichés à la fin

Lance le quiz et démarre le chronomètre

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 utilisateurs
  • groupadd, gpasswd, groupdel pour les groupes
  • chmod, chown, chgrp pour les permissions
  • passwd -l et passwd -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.