sudo exécute une seule commande avec les privilèges de root, sans que
vous ayez à vous connecter en root. C'est le geste de base de
l'administration Linux : vous restez sur votre compte normal, et vous
demandez une élévation de privilège ponctuelle quand la commande
l'exige. Vous allez apprendre ici à lancer une commande privilégiée, à
ouvrir un shell root temporaire, à lire vos droits avec sudo -l et à
sortir des deux erreurs les plus fréquentes du débutant.
Cette page traite de l'usage de sudo. Écrire les règles qui décident qui a le droit de faire quoi est un autre métier, traité dans Configurer sudoers et déléguer des droits.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Pourquoi ne pas travailler en root au quotidien
- Exécuter une commande privilégiée avec
sudo - Ouvrir un shell root temporaire avec
sudo -iet en sortir - Lire vos propres droits avec
sudo -l - Reconnaître les groupes
sudo(Debian) etwheel(Red Hat)
Pourquoi ne pas travailler en root
Section intitulée « Pourquoi ne pas travailler en root »Le compte root (UID 0) n'a aucun garde-fou : le noyau ne lui refuse rien. Une faute de frappe qui provoquerait une simple erreur de permission sur votre compte devient une destruction irréversible en root. Le tableau ci-dessous montre trois commandes que tout le monde tape un jour, et ce qu'un espace mal placé leur fait produire.
| Commande | Conséquence en tant que root |
|---|---|
rm -rf /tmp/* | Supprime le contenu de /tmp, comportement attendu |
rm -rf / tmp/* (espace en trop) | Supprime tout le système |
chmod -R 777 / | Rend le système entier accessible en écriture à tout le monde |
Travailler avec un compte normal et sudo ajoute trois freins utiles :
vous devez taper sudo explicitement, ce qui vous force à désigner
l'action dangereuse ; vous devez saisir votre mot de passe ; et chaque
appel laisse une trace nominative dans les journaux du système. Le
troisième point compte autant que les deux autres : après un incident,
c'est ce qui permet de savoir qui a fait quoi.
Exécuter une commande avec sudo
Section intitulée « Exécuter une commande avec sudo »La syntaxe tient en un mot : préfixez la commande par sudo. Le
système vous demande alors votre mot de passe, et non celui de root,
que vous n'avez d'ailleurs probablement pas.
sudo apt updateVérifiez immédiatement que l'élévation a bien eu lieu, avec la commande
id qui affiche l'identité effective du processus lancé :
id -un # votre comptesudo id -un # l'identité obtenue via sudobobrootLa deuxième ligne affiche root : la commande passée à sudo s'exécute
bien avec l'identité du superutilisateur, alors que votre shell, lui,
est resté sur votre compte.
Les commandes qui réclament sudo
Section intitulée « Les commandes qui réclament sudo »Un réflexe s'installe vite : sudo est nécessaire dès que vous écrivez
en dehors de votre dossier personnel. En pratique, cela couvre
l'installation de paquets, la modification des fichiers de configuration
dans /etc, la gestion des services et la lecture de certains journaux.
sudo apt install htop # Debian/Ubuntusudo dnf install htop # Fedora/RHEL
sudo nano /etc/hostname # fichier de configuration systèmesudo systemctl restart ssh # gestion d'un servicesudo journalctl -n 50 # journaux systèmeÀ l'inverse, lire un fichier public (cat /etc/passwd), lister un dossier
ou travailler dans votre $HOME ne demande aucun privilège. Préfixer
tout par sudo par superstition est un anti-pattern : vous finissez
avec des fichiers appartenant à root dans votre propre répertoire, que
vous ne pouvez plus modifier sans... sudo.
Le mot de passe n'est pas redemandé à chaque fois
Section intitulée « Le mot de passe n'est pas redemandé à chaque fois »Après une première authentification réussie, sudo mémorise votre
validation pendant quelques minutes, par terminal. Ce délai
(timestamp_timeout) dépend de la distribution, ce qui surprend quand
on passe d'une famille à l'autre :
| Distribution | Délai de mémorisation |
|---|---|
| Debian / Ubuntu | 15 minutes |
| RHEL / Rocky / Fedora (valeur amont) | 5 minutes |
Pour lire la valeur réellement appliquée sur votre machine plutôt que la supposer, demandez à sudo lui-même :
sudo sudo -V | grep -i "timestamp timeout"Authentication timestamp timeout: 15.0 minutesSi vous voulez fermer la session avant l'expiration, par exemple avant
de laisser votre poste, sudo -k oublie l'authentification immédiatement.
La commande suivante redemandera le mot de passe.
Ouvrir un shell root temporaire
Section intitulée « Ouvrir un shell root temporaire »Quand vous enchaînez dix commandes privilégiées, préfixer chacune par
sudo devient pénible. Le shell root temporaire répond à ce cas :
vous devenez root pour la durée d'une tâche, puis vous en sortez.
sudo -iroot@serveur:~#Le prompt change de forme : le $ devient #. C'est le signal visuel
qui indique que chaque commande tapée ici s'exécute en root, sans
filet. Confirmez au besoin avec whoami, qui doit répondre root. Pour
revenir à votre compte, exit suffit.
Différence entre sudo -i et sudo -s
Section intitulée « Différence entre sudo -i et sudo -s »Les deux options ouvrent un shell root, mais elles ne partent pas du même
environnement, ce qui explique des comportements déroutants comme un
$HOME qui pointe encore sur votre compte.
| Commande | Effet |
|---|---|
sudo -i | Shell root complet : charge le profil de root, $HOME devient /root |
sudo -s | Shell root qui conserve votre environnement : $HOME reste le vôtre |
Prenez sudo -i par défaut. Il démarre dans un environnement propre et
prévisible, identique à une connexion root réelle, ce qui évite les
surprises de PATH ou de variables héritées de votre session.
Vérifier ses droits avec sudo -l
Section intitulée « Vérifier ses droits avec sudo -l »sudo -l répond à une question précise : qu'ai-je le droit de faire,
moi, sur cette machine ? C'est la première commande à taper sur un
serveur que vous découvrez, avant de constater dans la douleur qu'une
commande vous est refusée.
sudo -lMatching Defaults entries for bob on serveur: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty
User bob may run the following commands on serveur: (ALL : ALL) ALLLa ligne (ALL : ALL) ALL se lit de gauche à droite : toutes les
identités cibles, tous les groupes cibles, toutes les commandes.
Autrement dit, un accès root complet. Sur un serveur bien tenu, vous
verrez plutôt une liste limitée de commandes autorisées.
Si votre compte n'a aucun droit, sudo est explicite :
Sorry, user alice may not run sudo on serveur.Les groupes sudo et wheel
Section intitulée « Les groupes sudo et wheel »Sur une installation standard, on n'accorde pas les droits sudo compte par compte : on ajoute l'utilisateur à un groupe d'administrateurs déjà autorisé dans la configuration. Le nom de ce groupe est la principale divergence entre familles de distributions.
Le groupe s'appelle sudo :
# Vérifier votre propre appartenancegroups | grep sudo
# Ajouter alice au groupe des administrateurssudo usermod -aG sudo alice
# Vérifier le résultatid -nG aliceLe groupe s'appelle wheel :
# Vérifier votre propre appartenancegroups | grep wheel
# Ajouter alice au groupe des administrateurssudo usermod -aG wheel alice
# Vérifier le résultatid -nG aliceLa commande id -nG alice doit maintenant afficher sudo (ou wheel)
parmi ses groupes. Attention au piège classique : l'appartenance à un
groupe est lue à l'ouverture de session. Tant qu'alice ne s'est pas
déconnectée puis reconnectée, son shell en cours ignore son nouveau
groupe et sudo continue de la rejeter.
Où se configure sudo
Section intitulée « Où se configure sudo »La configuration vit dans le fichier /etc/sudoers et dans les
fichiers du répertoire /etc/sudoers.d/. C'est là que sont écrites
les règles décidant qui peut lancer quelle commande et sous
quelle identité. On ne l'ouvre jamais avec un éditeur ordinaire : la
commande visudo verrouille le fichier et en contrôle la syntaxe
avant d'enregistrer, parce qu'une erreur dans ce fichier peut rendre sudo
inutilisable pour tout le monde, y compris vous.
En tant que débutant, vous n'avez pas à y toucher : ajouter le compte au
groupe sudo ou wheel couvre le besoin courant. Le jour où vous devrez
autoriser une équipe à redémarrer un seul service sans lui livrer root
entier, tout se joue dans ces fichiers, et c'est le sujet de Configurer
sudoers et déléguer des
droits : syntaxe des règles,
alias, NOPASSWD, drop-ins et audit.
Dépannage
Section intitulée « Dépannage »Trois messages reviennent en boucle chez les débutants. Ils ont tous une cause simple, et aucun ne se règle en tapant la commande une deuxième fois plus fort.
| Symptôme | Cause probable | Solution |
|---|---|---|
bob is not in the sudoers file | Le compte n'appartient pas au groupe sudo/wheel | Le faire ajouter au groupe, puis se reconnecter |
sudo: command not found | Paquet sudo absent (images minimales, conteneurs) | En root : apt install sudo ou dnf install sudo |
| Le mot de passe est refusé | Vous saisissez le mot de passe de root | Saisir votre mot de passe utilisateur |
| Le mot de passe est redemandé sans arrêt | Le délai de mémorisation a expiré (15 min Debian, 5 min RHEL) | Comportement normal, ressaisir |
Rien ne change après usermod -aG | Les groupes sont chargés à la connexion | Se déconnecter et se reconnecter, vérifier avec id -nG |
Contrôle de connaissances
Section intitulée « Contrôle de connaissances »Vérifiez que l'essentiel de ce guide est acquis. Les questions portent uniquement sur ce qui vient d'être expliqué ici.
Contrôle de connaissances
Validez vos connaissances avec ce quiz interactif
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
Vérification
(0/0)Profil de compétences
Quoi faire maintenant
Ressources pour progresser
Des indices pour retenter votre chance ?
Nouveau quiz complet avec des questions aléatoires
Retravailler uniquement les questions ratées
Retour à la liste des certifications
À retenir
Section intitulée « À retenir »- Ne travaillez pas en root au quotidien : élevez vos privilèges commande par commande.
sudo <commande>exécute une commande en root ; vérifiez avecsudo id -un.sudo -iouvre un shell root temporaire : le prompt passe de$à#, on en sort avecexit.sudo -laffiche vos droits, et seulement les vôtres.- L'accès passe par le groupe
sudo(Debian) ouwheel(Red Hat), effectif après reconnexion. - Le mot de passe reste mémorisé 15 minutes sur Debian/Ubuntu, 5 minutes côté RHEL ;
sudo -kl'oublie tout de suite.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Configurer sudoers et déléguer des droits : Écrire les règles qui autorisent une commande précise à une équipe, sans distribuer root.
- Arrêter un processus : Utiliser kill, les signaux et reprendre le contrôle.