Créer utilisateurs Linux et configurer sudo sans risquer root
À la fin de ce tutoriel, vous saurez lire votre identité (
id,whoami,groups), créer un compte de lab avecuseradd/adduser, gérer groupes primaires/secondaires, distinguersuet sudo Linux, éditer sudoers viavisudo, et ne jamais travailler en root au quotidien.Niveau : Débutant · Temps estimé : 40–50 min · Versions testées : Ubuntu 22.04 / 24.04, Debian 12 ; notes Rocky/Alma 9 (
wheel) · Dernière vérification : 2026-09-10Slug proposé :
linux-utilisateurs-sudo· Série : P5 Linux Basics · Remplace / fusionne : N/A — création
Prérequis
- Avoir suivi Fichiers et permissions Linux (
ls -l,chmod,chown) - Une machine Linux : Ubuntu 22.04/24.04 ou Debian recommandés ; Rocky/Alma 9 OK
- Un compte déjà capable d’exécuter
sudo(votre user de session) pour créer le user de lab - Terminal bash et une session interactive (pas de secrets réels dans les exemples)
Coût estimé : 0 €. Lab jetable : utilisateur labuser + home dédié — on le supprime en fin de tuto.
Ce que nous allons construire
Identité actuelle (id / whoami / groups)
→ Lecture /etc/passwd et /etc/group
→ Compte labuser (useradd + passwd)
→ Groupes primaire + secondaires
→ su vs sudo · groupe sudo (Debian) / wheel (RHEL)
→ Règle sudoers minimale via visudo
→ Vérif sudo -l · nettoyage userdel
(Schéma à remplacer par une image locale Excalidraw / draw.io, alt : « Flux identité Linux, useradd, groupes sudo/wheel et visudo ».)
Troisième chapitre de Linux Basics. Sur le cloud, l’idée « compte quotidien ≠ super-admin » rappelle IAM vs root AWS — voir Démarrer avec AWS (IAM quotidien, root verrouillé).
Étape 1 — Qui suis-je : id, whoami, groups
Avant de créer qui que ce soit, lisez votre session.
whoami
id
id -un
id -gn
groups
echo "UID=$UID HOME=$HOME"
| Commande | Rôle |
|---|---|
whoami |
Nom du user effectif |
id |
UID, GID primaire, groupes secondaires |
groups |
Liste courte des groupes |
$UID / $HOME |
Variables utiles en scripts |
Exemple Ubuntu : uid=1000(…) gid=1000(…) groups=…,27(sudo). Le groupe sudo (ou wheel sur Rocky) signale déjà une élévation possible — on la reproduira pour le compte de lab.
Étape 2 — Lire /etc/passwd et /etc/group (lecture seule)
Source classique d’identité locale (NSS/LDAP hors scope débutant).
getent passwd "$USER"
getent passwd | tail -n 5
getent group sudo 2>/dev/null || getent group wheel
# Lecture directe (équivalent souvent) :
head -n 3 /etc/passwd
grep -E '^(sudo|wheel):' /etc/group
Ligne /etc/passwd : nom:x:UID:GID:commentaire:home:shell (x → /etc/shadow — ne copiez jamais le hash). /etc/group : nom:x:GID:membres. Préférez getent : il suit la config système.
Étape 3 — Créer un utilisateur de lab (useradd / adduser)
Sur Debian/Ubuntu, adduser est interactif ; useradd est bas niveau et portable (Rocky/Alma inclus).
# Option A — Debian/Ubuntu (interactif : mot de passe, nom complet…)
# sudo adduser labuser
# Option B — portable (lab non interactif) — Ubuntu/Debian + Rocky/Alma
sudo useradd -m -s /bin/bash -c "Lab DevOps jetable" labuser
sudo passwd labuser
# Saisissez un mot de passe de lab (pas un secret de prod) ; confirmez
getent passwd labuser
ls -ld /home/labuser
id labuser
Flags : -m home, -s shell, -c commentaire. Pas d’UID 0. Gardez labuser en démo. Sur Rocky/Alma 9 : mêmes useradd/passwd ; préférez useradd si adduser manque.
Étape 4 — Groupes primaires et secondaires (usermod)
- Groupe primaire : celui du champ GID dans
passwd(fichiers créés héritent souvent de ce groupe). - Groupes secondaires : droits supplémentaires (ex.
sudo,docker,adm).
# Créer un groupe de lab puis l’attacher en secondaire
sudo groupadd labdevops 2>/dev/null || true
sudo usermod -aG labdevops labuser
# -aG = Append aux Groupes secondaires (sans -a, vous ÉCRASEZ la liste !)
id labuser
groups labuser
| Action | Commande | Attention |
|---|---|---|
| Ajouter un groupe secondaire | usermod -aG groupe user |
Toujours -a avec -G |
| Changer le groupe primaire | usermod -g groupe user |
Rare en lab |
| Renommer / home | usermod -l / -d |
Hors scope ici |
Sans -a, usermod -G … peut retirer les autres secondaires — erreur classique.
Étape 5 — su vs sudo : ne pas rester root
su / su - |
sudo commande |
|
|---|---|---|
| Idée | Devenir un autre user (souvent root) pour une session | Exécuter une commande en élevé |
| Mot de passe | Celui de la cible (root) en général | Celui de votre user (si autorisé) |
| Trace | Moins granulaire | Journalisée (/var/log/auth.log ou journald) |
| Usage DevOps | Rare au quotidien | Standard |
# Session root complète — à éviter au quotidien
# su -
# exit
# Élévation ponctuelle (recommandé)
sudo whoami # doit afficher root si vous êtes dans sudo/wheel
sudo -l # liste vos droits sudo
Règle d’or : compte quotidien non-root + sudo pour l’admin. Même idée qu’IAM vs root dans Démarrer avec AWS.
Étape 6 — Groupe sudo (Debian/Ubuntu) vs wheel (RHEL)
| Famille | Groupe admin typique | Fichier / snippet |
|---|---|---|
| Debian / Ubuntu | sudo |
%sudo ALL=(ALL:ALL) ALL dans sudoers |
| Rocky / Alma / RHEL | wheel |
%wheel ALL=(ALL) ALL (parfois commenté à activer) |
# Debian/Ubuntu — donner sudo à labuser
sudo usermod -aG sudo labuser
# Rocky/Alma — équivalent
# sudo usermod -aG wheel labuser
# Vérifier l’appartenance (nouvelle session parfois requise)
id labuser
getent group sudo 2>/dev/null || getent group wheel
Après usermod -aG, labuser doit se reconnecter pour voir sudo/wheel dans groups (ou tester via sudo -iu labuser).
Étape 7 — visudo et règles sudoers minimales
Ne jamais éditer /etc/sudoers à nu : une typo = plus de sudo. Toujours visudo (verrou + validation).
# Ouvre l’éditeur configuré (souvent nano ou vi)
sudo visudo
Pour un lab, préférez un drop-in :
# Créer une règle dédiée lab (Debian/Ubuntu ; chemin standard)
echo 'labuser ALL=(ALL) NOPASSWD: /usr/bin/whoami, /usr/bin/id' | sudo tee /etc/sudoers.d/99-labuser
sudo chmod 440 /etc/sudoers.d/99-labuser
sudo visudo -cf /etc/sudoers.d/99-labuser
| Élément | Sens |
|---|---|
labuser |
Qui |
ALL=(ALL) |
Depuis tous les hôtes, peut devenir n’importe quel user |
NOPASSWD: |
Sans redemander le mot de passe — lab seulement |
| Liste de binaires | Moindre privilège : pas ALL aveugle |
Avertissement :
NOPASSWD/ALLlarge = OK en VM jetable, dangereux sur VPS. En projet : mot de passe, commandes listées. Validez avecvisudo -cfavant de fermer la session sudo.
Étape 8 — Vérification
# En tant que votre admin de session :
sudo -l
sudo whoami
sudo -u labuser whoami
sudo -u labuser id
# Simuler labuser (si mot de passe / règle OK) :
sudo -iu labuser <<'EOS'
whoami
id
groups
sudo -l
sudo whoami
sudo id
exit
EOS
Validé si : labuser a un home + bash, est dans sudo/wheel (ou a une règle sudoers.d), sudo whoami → root, et vous évitez une session root permanente.
Nettoyage — supprimer le user de lab
# Retirer la règle sudoers de lab
sudo rm -f /etc/sudoers.d/99-labuser
# Supprimer le compte + home + mail spool
sudo userdel -r labuser
# Groupe de lab (si plus personne dedans)
sudo groupdel labdevops 2>/dev/null || true
getent passwd labuser || echo "labuser supprimé — OK"
Sans -r, le home reste : nettoyez-le. Jamais userdel sur votre propre session.
Erreurs fréquentes
| Symptôme | Cause | Correction |
|---|---|---|
labuser is not in the sudoers file |
Pas dans sudo/wheel ni règle |
usermod -aG sudo|wheel + reconnect, ou drop-in visudo |
| Groupes pas à jour dans le shell | Session ouverte avant usermod |
Logout/login ou newgrp / nouvelle SSH |
usermod -G a vidé les groupes |
Oubli du -a |
Remettre chaque groupe avec usermod -aG |
| Plus de sudo après edit | Syntaxe sudoers cassée | Réparer via root console / recovery ; toujours visudo |
Habitude sudo su - toute la journée |
Session root permanente | Préférer sudo cmd ; compte quotidien non-root |
Quiz (3 questions)
1. Quelle est la différence principale entre su - et sudo commande ?
– A. Aucune, ce sont des alias
– B. su ouvre souvent une session sous l’identité cible ; sudo élève une commande ponctuelle avec journalisation
– C. sudo ne fonctionne que sur Rocky
2. Où modifier sudoers en sécurité ?
– A. nano /etc/sudoers directement sans contrôle
– B. Avec visudo (ou un fichier dans /etc/sudoers.d/ validé par visudo -cf)
– C. Dans ~/.bashrc
3. À quoi sert le groupe sudo (Debian/Ubuntu) ou wheel (RHEL) ?
– A. Uniquement à stocker des mots de passe
– B. À marquer les utilisateurs autorisés à utiliser sudo selon les règles sudoers
– C. À remplacer /etc/passwd
Réponses : 1‑B · 2‑B · 3‑B
FAQ
Différence su et sudo ?
su change d’identité pour une session (souvent root, mot de passe de la cible). sudo Linux élève une commande si vous êtes autorisé ; on tape en général son mot de passe, avec journalisation. Au quotidien : sudo, pas de session root ouverte.
Où modifier sudoers en sécurité ?
Via visudo, ou un drop-in /etc/sudoers.d/ validé par visudo -cf. Éditer /etc/sudoers sans validation peut vous verrouiller hors admin.
À quoi sert le groupe sudo/wheel ?
Groupe d’admin local référencé par sudoers (%sudo / %wheel). usermod -aG y ajoute un user pour l’élévation prévue par la distro — l’équivalent du compte admin quotidien vs root nu.
Pour aller plus loin
man useradd,man usermod,man sudoers,man visudo- Prochain tuto : installer et mettre à jour des paquets avec
aptetdnf
Maillage série Linux Basics (P5)
| ← Précédent | Fichiers et permissions Linux |
| → Suivant | Paquets apt et dnf |
| Hub | Linux Basics |
| Aussi | Comptes cloud vs OS : Démarrer avec AWS (IAM quotidien vs root) |
Meta publication (à remplir dans Rank Math / SEO)
- Title SEO : Utilisateurs Linux et sudo : useradd, groups, visudo (2026)
- Meta description (≤ 155) : Créez des comptes, gérez groupes et sudoers correctement. Évitez de travailler en root au quotidien — guide junior DevOps.
- Focus keyphrase : sudo linux
- KW secondaires : useradd, usermod, groups linux, visudo, /etc/sudoers
- Schemas Rank Math : Article + HowTo (étapes lab) + FAQ (3 questions ci-dessus)
- Image mise en avant :
assets/web/devopelastichayway/cover-linux-utilisateurs-sudo-1200x630.webp(Visuels Linux — WebP 1200×630) - Catégorie : Linux · Niveau : Débutant
- Slug :
linux-utilisateurs-sudo
← Retour parcours Linux — Basics, Admin, Réseau & Sécurité, Shell & Automation.