.## 1. Introduction : Qu’est‑ce que sudo ?
- 1 2. Utilisation de base de la commande sudo
- 2 3. Le Fichier sudoers et le Contrôle d’Accès
- 3 4. Utilisation Avancée de sudo
- 4 5. Sécurité et bonnes pratiques
- 5 6. Erreurs courantes et dépannage
- 6 7. FAQ
- 6.1 Q1. Quelle est la différence entre sudo et su ?
- 6.2 Q2. Le mot de passe root est-il requis pour sudo ?
- 6.3 Q3. Où sont stockés les journaux sudo ?
- 6.4 Q4. J’ai cassé le fichier sudoers. Que dois-je faire ?
- 6.5 Q5. Puis-je obtenir des privilèges root sans sudo ?
- 6.6 Q6. Est-il sûr d’exécuter des applications GUI avec sudo ?
- 7 8. Résumé
Signification de base et rôle de sudo
Dans les systèmes Linux et de type Unix, sudo est l’une des commandes les plus importantes.
Le terme sudo signifie « superuser do », et c’est un outil qui permet aux utilisateurs d’exécuter temporairement des commandes avec des privilèges administratifs (root).
Normalement, les utilisateurs ordinaires ne sont pas autorisés à effectuer des opérations qui affectent l’ensemble du système, comme l’installation de paquets ou la modification des paramètres système. Cependant, en utilisant la commande sudo, ces opérations privilégiées peuvent être exécutées de manière contrôlée et limitée.
Par exemple, la commande suivante exécute apt avec les privilèges root :
sudo apt update
De cette façon, sudo joue un rôle crucial en tant que mécanisme sécurisé d’utilisation des privilèges administratifs, équilibrant à la fois la sécurité du système et la facilité d’utilisation.
Différence entre sudo et su
Une autre commande ayant un objectif similaire à sudo est su, mais il existe des différences nettes entre les deux.
susignifie « substitute user » et sert à passer complètement à un autre utilisateur (généralement root). Lorsque vous utilisezsu, vous agissez en tant que cet utilisateur pendant toute la session.- En revanche,
sudovous permet de rester votre utilisateur actuel tout en empruntant temporairement des privilèges administratifs pour une seule commande.
En bref, su change d’utilisateur au niveau de la session, tandis que sudo élève les privilèges au niveau de la commande. Du point de vue de la sécurité, sudo facilite le suivi de l’historique des commandes, ce qui explique pourquoi il est devenu la méthode standard dans les distributions Linux modernes.
Distributions Linux qui utilisent couramment sudo
La commande sudo est activée par défaut dans de nombreuses distributions Linux, notamment les suivantes :
- Systèmes basés sur Ubuntu (Ubuntu, Linux Mint, etc.) → Le compte root est désactivé par défaut, et toutes les tâches administratives sont effectuées via sudo.
- Systèmes basés sur Debian → sudo peut devoir être activé manuellement, mais il est souvent recommandé comme bonne pratique de sécurité.
- Systèmes basés sur Fedora, CentOS et Red Hat → L’accès direct root est possible, mais l’utilisation de sudo reste courante.
Dans Ubuntu en particulier, le compte root est désactivé par défaut, et toutes les opérations administratives doivent être effectuées avec sudo. Pour cette raison, comprendre sudo est essentiel pour les utilisateurs d’Ubuntu.
Pourquoi les gens recherchent‑ils « sudo sudo » ?
Le mot‑clé « sudo sudo » peut sembler redondant à première vue, mais il est souvent recherché pour les raisons suivantes :
- Débutants cherchant à souligner ou mieux comprendre la signification et l’utilisation de
sudo - Utilisateurs rencontrant des erreurs telles que
sudo: sudo: command not found - Confusion après avoir vu des exemples où
sudoest utilisé deux fois par erreur dans des scripts ou des pipelines
Avec ces intentions de recherche en tête, les sections suivantes expliqueront en détail l’utilisation correcte, les méthodes de configuration et les techniques de dépannage de sudo.
2. Utilisation de base de la commande sudo
Syntaxe de base de sudo
La syntaxe de base de sudo est très simple :
sudo [options] command
Par exemple, pour mettre à jour les informations des paquets du système :
sudo apt update
Cela signifie que la commande apt update est exécutée avec les privilèges root.
Authentification par mot de passe et mise en cache des informations d’identification
Lorsque vous utilisez sudo pour la première fois, ou après un certain temps, le système vous demandera d’entrer votre mot de passe utilisateur. Ce mécanisme de sécurité aide à prévenir les usages accidentels ou les accès non autorisés.
Après avoir saisi votre mot de passe, il est mis en cache pendant une période fixe (5 minutes par défaut sur Ubuntu). Pendant ce temps, les commandes sudo suivantes ne nécessitent pas de ressaisir le mot de passe. Ce délai peut être ajusté dans le fichier sudoers.
Options couramment utilisées
sudo propose de nombreuses options pour rendre les opérations plus flexibles et pratiques. Voici quelques‑unes des plus couramment utilisées.
-u (Exécuter en tant qu’un autre utilisateur)
Par défaut, les commandes sont exécutées en tant que root, mais avec l’option -u, vous pouvez exécuter une commande en tant qu’utilisateur spécifié.
sudo -u www-data whoami
La sortie sera www-data, confirmant que la commande a été exécutée en tant qu’utilisateur www-data.
-s (Démarrer un Shell)
La commande suivante ouvre un shell temporaire avec des privilèges root :
sudo -s
Soyez prudent lorsque vous travaillez dans un shell root.
-i (Simuler une Connexion Root Complète)
Cette option crée un environnement root plus complet. Les variables d’environnement sont basculées vers celles de root, résultant en une session root similaire à une connexion directe en tant que root.
sudo -i
-l (Lister les Commandes Autorisées)
Vous pouvez vérifier quelles commandes vous êtes autorisé à exécuter avec sudo :
sudo -l
Cela est utile pour vérifier les paramètres de permissions et les restrictions de sécurité.
Points Importants pour les Débutants
- Vous devez inclure un espace après
sudo. Par exemple,sudoaptest incorrect. - Lors de l’exécution de plusieurs commandes, vous devez mettre entre guillemets l’ensemble de la commande ou les séparer par des points-virgules.
- Lancer des applications GUI avec
sudopeut endommager les fichiers de configuration , il devrait donc généralement être évité (par exemple,sudo gedit).
3. Le Fichier sudoers et le Contrôle d’Accès
Qu’est-ce que le Fichier sudoers ?
Le fichier de configuration qui contrôle le comportement de la commande sudo est /etc/sudoers. Ce fichier définit qui peut exécuter quelles commandes en utilisant sudo.
Par exemple, il permet un contrôle d’accès fin tel que permettre à un utilisateur d’exécuter uniquement des commandes spécifiques avec sudo.
Cette flexibilité rend possible le suivi du principe du moindre privilège, accordant aux utilisateurs uniquement les permissions minimales dont ils ont besoin.
Édition Sécurisée avec la Commande visudo
Vous ne devriez jamais éditer /etc/sudoers directement avec un éditeur de texte.
Une erreur de syntaxe dans ce fichier peut désactiver sudo entièrement, rendant la récupération du système difficile. Pour cette raison, il est fortement recommandé de l’éditer en utilisant la commande visudo.
sudo visudo
visudo effectue une vérification de syntaxe avant de sauvegarder, permettant des changements de configuration sécurisés.
Syntaxe de Base et Exemples de Configuration
La syntaxe de base du fichier sudoers est la suivante :
username hostname = (run-as user) allowed commands
Exemple :
alice ALL=(ALL:ALL) ALL
Cette configuration permet à l’utilisateur alice d’exécuter toutes les commandes en tant qu’utilisateur quelconque sur tous les hôtes.
Un exemple plus restreint :
bob ALL=(ALL) /usr/bin/systemctl restart nginx
Cela permet à l’utilisateur bob d’exécuter uniquement la commande de redémarrage nginx avec sudo.
Contrôle Basé sur les Groupes : Le Groupe sudo
Sur de nombreuses distributions telles qu’Ubuntu, les utilisateurs appartenant au groupe sudo sont autorisés à utiliser sudo.
%sudo ALL=(ALL:ALL) ALL
L’utilisation de %sudo permet la gestion des permissions basée sur les groupes.
Pour ajouter un utilisateur au groupe sudo :
sudo usermod -aG sudo username
L’Option NOPASSWD et Considérations de Sécurité
Si entrer un mot de passe à chaque fois est gênant, vous pouvez utiliser l’option NOPASSWD pour sauter l’authentification par mot de passe.
alice ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart nginx
Cela permet à alice de redémarrer nginx sans entrer de mot de passe.
Cependant, cela augmente le risque de sécurité, il est donc crucial de limiter l’utilisation à des commandes spécifiques uniquement. L’utilisation de NOPASSWD avec ALL n’est pas recommandée.
4. Utilisation Avancée de sudo
Exécuter des Commandes en Tant qu’Utilisateur Spécifique
Bien que sudo exécute typiquement les commandes en tant que root, il peut aussi exécuter des commandes en tant qu’autres utilisateurs.
Par exemple, pour exécuter une commande en tant qu’utilisateur www-data :
sudo -u www-data whoami
La sortie sera www-data.
Cela est utile pour vérifier les permissions et les différences d’environnement entre les utilisateurs.
Utiliser sudo avec la Redirection et les Pipes
Un point de confusion courant pour les débutants est la combinaison de sudo avec la redirection (>) ou les pipes (|).
La commande suivante semble correcte mais ne fonctionne pas comme attendu :
sudo echo "test" > /etc/test.conf
Bien que echo s’exécute avec sudo, la redirection est gérée par le shell en tant qu’utilisateur normal.
L’approche correcte est d’utiliser tee :
echo "test" | sudo tee /etc/test.conf
Utilisation de sudo dans les scripts
Lorsque les scripts nécessitent des privilèges administratifs, ajoutez sudo uniquement aux commandes qui en ont besoin.
Exemple (install.sh) :
#!/bin/bash
echo "Installing package..."
sudo apt install -y nginx
Un autre modèle courant est de vérifier si le script est exécuté en tant que root :
if [ "$EUID" -ne 0 ]; then
echo "This script must be run as root"
exit 1
fi
Raccourcis utiles pour sudo
sudo !!Réexécute la commande précédente avec sudo.apt update sudo !!
sudo -kEfface les identifiants sudo mis en cache.sudo -vProlonge la session sudo actuelle.
5. Sécurité et bonnes pratiques
Suivre le principe du moindre privilège
L’objectif principal de l’utilisation de sudo est de faire fonctionner le système avec les privilèges minimaux nécessaires.
- Autoriser uniquement des commandes spécifiques via sudo
- Limiter l’utilisation de
NOPASSWD - Gérer les administrateurs via des groupes
Journalisation et audit
sudo journalise toutes les commandes exécutées.
/var/log/auth.log(Ubuntu/Debian)journalctl(systèmes basés sur systemd)grep 'sudo' /var/log/auth.logjournalctl _COMM=sudo

Vulnérabilité sudo dans le monde réel (CVE-2021-3156)
Bien que sudo soit hautement fiable, des vulnérabilités graves ont été découvertes par le passé.
Un exemple notable est CVE-2021-3156 (Baron Samedit), qui permettait aux utilisateurs locaux d’obtenir des privilèges root dans des conditions spécifiques.
- Garder sudo à jour
- Surveiller les avis de sécurité
Alternative à sudo : doas
Certains environnements axés sur la sécurité utilisent doas comme alternative plus simple à sudo.
doas apt update
Exemple de configuration :
permit nopass :wheel
6. Erreurs courantes et dépannage
L’utilisateur n’est pas dans le fichier sudoers
username is not in the sudoers file. This incident will be reported.
Cela signifie que l’utilisateur manque de privilèges sudo.
sudo usermod -aG sudo username
Autorisation refusée avec redirection
echo "test" | sudo tee /etc/test.conf
Fichier sudoers corrompu
pkexec visudo
sudo : commande non trouvée
apt update
apt install sudo
7. FAQ
Q1. Quelle est la différence entre sudo et su ?
Réponse : sudo élève les privilèges des commandes individuelles, tandis que su change complètement d’utilisateur.
Q2. Le mot de passe root est-il requis pour sudo ?
Réponse : Non. Vous entrez votre propre mot de passe utilisateur.
Q3. Où sont stockés les journaux sudo ?
/var/log/auth.log/var/log/securejournalctl _COMM=sudo
Q4. J’ai cassé le fichier sudoers. Que dois-je faire ?
Utilisez le mode de récupération ou pkexec visudo.
Q5. Puis-je obtenir des privilèges root sans sudo ?
Oui, mais ce n’est pas recommandé.
Q6. Est-il sûr d’exécuter des applications GUI avec sudo ?
Non. Utilisez pkexec à la place.
8. Résumé
Comprendre sudo correctement
sudo est un mécanisme de contrôle d’accès critique, pas seulement une commande de commodité.
Une utilisation correcte évite les problèmes
- Utiliser le moindre privilège
- Éditer avec
visudo - Examiner les journaux
Choisir le bon style opérationnel
Sélectionnez des outils tels que sudo ou doas en fonction de votre politique de sécurité.
Note finale
Comprendre sudo est une étape fondamentale vers la maîtrise de l’administration système Linux.


