Sur un système Linux, chaque personne qui utilise la machine a son propre compte. Créer un utilisateur, lui attribuer des groupes, modifier ses paramètres ou verrouiller un accès — voici les commandes essentielles pour gérer les utilisateurs et les groupes de manière sécurisée.
Chaque utilisateur sur Linux est défini par plusieurs informations stockées dans deux fichiers clés :
/etc/passwd — informations du compte (login, UID, GID principal, shell, etc.)/etc/shadow — mot de passe chiffré (accessible uniquement à root)/etc/group — liste des groupes et de leurs membres/etc/gshadow — mots de passe des groupes (rarement utilisé)utilisateur:x:1001:1001:Prénom Nom:/home/utilisateur:/bin/bash
│ │ │ │ │ │ │
│ │ │ │ │ │ └─ Shell par défaut
│ │ │ │ │ └─ Répertoire personnel
│ │ │ │ └─ Champ GECOS (nom complet, etc.)
│ │ │ └─ GID du groupe principal
│ │ └─ UID (numéro unique de l'utilisateur)
│ └─ x = mot de passe dans /etc/shadow
└─ Nom de connexion# Créer un utilisateur standard
sudo useradd -m utilisateur
# Explique :
# -m : crée aussi le répertoire personnel (/home/utilisateur)# Créer avec un commentaire (champ GECOS)
sudo useradd -m -c "Jean Dupont, Service IT" -s /bin/bash utilisateur
# Spécifier l'UID
sudo useradd -m -u 1500 utilisateur
# Spécifier le groupe principal (doit exister)
sudo useradd -m -g developers -s /bin/bash utilisateur
# Spécifier les groupes secondaires (séparés par virgules)
sudo useradd -m -G sudo,audio,video utilisateur
# Spécifier le répertoire personnel (si différent de /home/login)
sudo useradd -m -d /data/utilisateurs/jean utilisateur
# Définir un shell par défaut
sudo useradd -m -s /bin/zsh utilisateur
# Créer un compte système (pas de login interactif possible)
sudo useradd -r service-account
# Définir la date d'expiration du compte
sudo useradd -m -e 2025-12-31 utilisateur# Voir l'utilisateur dans /etc/passwd
grep utilisateur /etc/passwd
# Vérifier son répertoire personnel
ls -la /home/utilisateur/
# Lister tous les groupes d'un utilisateur
groups utilisateurAprès useradd, il faut attribuer un mot de passe :
# Définir le mot de passe d'un utilisateur
sudo passwd utilisateur
# L'utilisateur peut changer son propre mot de passe
passwd
# Forcer un changement de mot de passe au prochain login
sudo passwd -e utilisateur
# Vérouiller un compte (désactive le mot de passe)
sudo passwd -l utilisateur
# Déverrouiller un compte
sudo passwd -u utilisateur
# Supprimer le mot de passe (connexion sans mot de passe)
sudo passwd -d utilisateur# Changer le nom de connexion
sudo usermod -l nouveau_nom ancien_nom
# Changer le répertoire personnel
sudo usermod -d /nouveau/chemin -m utilisateur
# -m : déplace aussi le contenu de l'ancien répertoire
# Ajouter un commentaire
sudo usermod -c "Nouveau commentaire" utilisateur
# Changer le shell par défaut
sudo usermod -s /bin/zsh utilisateur
# Changer l'UID
sudo usermod -u 1600 utilisateur
# Changer le GID du groupe principal
sudo usermod -g 1500 utilisateur# Ajouter l'utilisateur à un groupe supplémentaire
sudo usermod -a -G audio utilisateur
# -a (append) est OBLIGATOIRE pour ajouter sans remplacer
# Ajouter à plusieurs groupes
sudo usermod -a -G sudo,video,bluetooth utilisateur
# Remplacer tous les groupes secondaires (sans -a)
sudo usermod -G developers,admins utilisateur
# Retirer un utilisateur d'un groupe
sudo gpasswd -d utilisateur groupe# Vérouiller le compte (ajoute ! devant le mot de passe)
sudo usermod -L utilisateur
# Déverrouiller le compte
sudo usermod -U utilisateur
# Définir une date d'expiration
sudo usermod -e 2025-12-31 utilisateur
# Désactiver le compte (aussi via chsh -s /bin/false)
sudo usermod -s /bin/false utilisateur# Créer un groupe standard
sudo groupadd developers
# Créer un groupe système (GID < 1000)
sudo groupadd -r service-group
# Spécifier un GID
sudo groupadd -g 1500 developers# Ajouter un utilisateur au groupe
sudo gpasswd -a utilisateur developers
# Retirer un utilisateur du groupe
sudo gpasswd -d utilisateur developers
# Définir les administrateurs du groupe (peuvent ajouter/retirer des membres)
sudo gpasswd -A utilisateur developers
# Ajouter plusieurs utilisateurs
sudo gpasswd -M user1,user2,user3 developers
# (remplace tous les membres existants)# Changer le nom du groupe
sudo groupmod -n nouveau_nom ancien_nom
# Changer le GID
sudo groupmod -g 1600 developers# Supprimer un groupe
sudo groupdel developers
# Un groupe ne peut pas être supprimé s'il est le groupe principal d'un utilisateur# Supprimer l'utilisateur (conserve le répertoire personnel)
sudo userdel utilisateur
# Supprimer l'utilisateur ET son répertoire personnel
sudo userdel -r utilisateur
# Forcer la suppression même si l'utilisateur est connecté
sudo userdel -f utilisateur# Qui est connecté actuellement
who
# Liste détaillée avec durée de connexion
w
# Exemple de sortie de w :
# USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
# jean pts/0 192.168.1.10 09:23 1.00s 0.50s 0.10s bash# Informations complètes d'un utilisateur
id utilisateur
# uid=1001(utilisateur) gid=1001(utilisateur) groupes=1001(utilisateur),27(sudo),29(audio)
# Juste le nom d'utilisateur
whoami
# Vérifier si un utilisateur existe
id -u utilisateur # retourne 0 si existe, 1 si non# 1. Créer le compte avec home
sudo useradd -m -c "Marie Martin" -s /bin/bash -G sudo marie
# 2. Définir le mot de passe
sudo passwd marie
# 3. Vérifier
id marie
groups marie# Compte système, pas de mot de passe, shell désactivé
sudo useradd -r -s /bin/false -M service-app
# Utiliser pour exécuter un service systemd
# Dans le fichier unit :
# User=service-app
# Group=service-app# 1. Créer le groupe s'il n'existe pas
sudo groupadd projet_x
# 2. Ajouter l'utilisateur au nouveau groupe
sudo usermod -a -G projet_x utilisateur
# 3. Changer le groupe principal
sudo usermod -g projet_x utilisateur
# 4. Vérifier
id utilisateur# Lister tous les utilisateurs ordinaires (UID >= 1000)
getent passwd | awk -F: '$3 >= 1000 && $3 < 65534 {print $1}'
# Lister les comptes sans mot de passe
sudo awk -F: '($2 == "") {print $1}' /etc/shadow
# Lister les comptes expirés
sudo awk -F: '($8 == "0") {print $1}' /etc/shadow| Commande | Description |
|---|---|
sudo useradd -m utilisateur | Créer un utilisateur avec répertoire personnel |
sudo passwd utilisateur | Définir le mot de passe |
sudo usermod -a -G groupe user | Ajouter à un groupe (append) |
sudo usermod -L utilisateur | Verrouiller le compte |
sudo usermod -e YYYY-MM-DD user | Définir date d'expiration |
sudo groupadd groupe | Créer un groupe |
sudo gpasswd -a user groupe | Ajouter un membre à un groupe |
sudo groupdel groupe | Supprimer un groupe |
sudo userdel -r utilisateur | Supprimer utilisateur et home |
id utilisateur | Afficher UID, GID et groupes |
who | Qui est connecté |
groups utilisateur | Groupes d'un utilisateur |
La gestion des utilisateurs est une compétence fondamentale pour tout administrateur Linux. Ces commandes te permettent de créer, configurer, protéger et supprimer des comptes en toute sécurité.