Corrigé — Exercices : Gestion des utilisateurs et des groupes (Linux)

Ce solutionnaire propose les commandes attendues, des variantes selon distributions, et exemples d’output.
Hypothèses : Ubuntu/Debian (les équivalents useradd/userdel sont fournis).


Exercice 1 — Création d’un utilisateur

Objectif : créer marie, vérifier dans la base des comptes et afficher ses infos.

Commandes

# Ubuntu/Debian (assistant interactif : mot de passe, infos, etc.)
sudo adduser marie

# Variante (plus bas niveau, non interactif) :
# sudo useradd -m -s /bin/bash marie && sudo passwd marie

Vérification

# Consulter base des comptes (plus sûr que cat /etc/passwd)
getent passwd marie

# Afficher UID, GID et groupes
id marie

Exemple d’output

$ getent passwd marie
marie:x:1002:1002:marie,,,:/home/marie:/bin/bash

$ id marie
uid=1002(marie) gid=1002(marie) groups=1002(marie)

Exercice 2 — Gestion des mots de passe

Commandes

# Attribuer/Modifier le mot de passe
sudo passwd marie

# Se connecter en shell de connexion
su - marie

# Vérifier l’identité
whoami

Exemple d’output

Password: ********
$ whoami
marie

Astuce : si su est désactivé (politiques PAM), on peut tester l’environnement avec :

sudo -u marie -H -s
whoami
exit

Exercice 3 — Création et gestion de groupes

Commandes

# Créer le groupe
sudo groupadd etudiants

# Ajouter marie au groupe
sudo gpasswd -a marie etudiants
# Variante équivalente :
# sudo usermod -aG etudiants marie

# Vérifier appartenance
groups marie
id marie

Exemple d’output

$ groups marie
marie : marie etudiants

Exercice 4 — Modification d’un utilisateur

Objectif : changer le HOME et ajouter au groupe sudo.

Commandes

# Créer le nouveau dossier parent si nécessaire
sudo mkdir -p /home/etudiants

# Changer le répertoire personnel et déplacer le contenu
sudo usermod -d /home/etudiants/marie -m marie

# Ajouter marie au groupe sudo (sur Debian/Ubuntu)
sudo usermod -aG sudo marie
# Sur d'autres distributions, le groupe d'admin peut être "wheel":
# sudo usermod -aG wheel marie

# Vérification
getent passwd marie
id marie

Exemple d’output

$ getent passwd marie
marie:x:1002:1002:marie,,,:/home/etudiants/marie:/bin/bash

Exercice 5 — Suppression d’un utilisateur et d’un groupe

Commandes

# Créer pour l'exercice
sudo adduser paul          # (ou: sudo useradd -m -s /bin/bash paul && sudo passwd paul)
sudo groupadd projetX
sudo gpasswd -a paul projetX    # (ou: sudo usermod -aG projetX paul)

# Supprimer l’utilisateur (avec son HOME)
sudo deluser --remove-home paul
# Variante :
# sudo userdel -r paul

# Supprimer le groupe
sudo groupdel projetX

Vérification

getent passwd paul   # (aucune sortie attendue)
getent group projetX # (aucune sortie attendue)

Exercice 6 — Superutilisateur (root)

Étapes & résultats attendus

  1. Sans sudo :
adduser testadmin

Résultat attendu : échec (permission refusée) ou demande d’élévation.

  1. Avec sudo :
sudo adduser testadmin

Résultat attendu : création réussie de l’utilisateur.

Nettoyage (facultatif)

sudo deluser --remove-home testadmin  # ou sudo userdel -r testadmin

Exercice 7 — Scénario pratique

Objectif : créer utilisateurs et groupes, puis affectations.

Commandes

# Utilisateurs
sudo adduser alice
sudo adduser bob
sudo adduser charles

# Groupes
sudo groupadd reseau
sudo groupadd programmation

# Affectations
sudo gpasswd -a alice reseau
sudo gpasswd -a bob reseau
sudo gpasswd -a charles programmation
# (ou usermod -aG ...)

# Vérifications
id alice
id bob
id charles

Exemple d’outputs

$ id alice
uid=1003(alice) gid=1003(alice) groups=1003(alice),1005(reseau)

$ id bob
uid=1004(bob) gid=1004(bob) groups=1004(bob),1005(reseau)

$ id charles
uid=1005(charles) gid=1005(charles) groups=1005(charles),1006(programmation)

Exercice 8 — Réflexion (éléments de réponse)

  1. Utilisateur vs Groupe

  2. /etc/passwd vs /etc/shadow

  3. adduser / usermod / groupadd / gpasswd


Annexes utiles

getent passwd | awk -F: '$7 ~ /(bash|zsh|fish|sh)$/ {print $1 ":" $6 ":" $7}'
getent group | cut -d: -f1,3
getent passwd | awk -F: '$3>=1000 {print $1, $3, $6}' | sort -k2n