Linux Command · 9 min read · Dec 16, 2025
Guide du débutant pour comprendre sudo sur Ubuntu

Avez-vous déjà rencontré une erreur ‘Permission refusée’ en travaillant sur la ligne de commande Linux ? Il y a de fortes chances que vous essayiez d’effectuer une opération nécessitant des permissions root. Par exemple, la capture d’écran suivante montre l’erreur qui s’est produite lorsque j’essayais de copier un fichier binaire dans l’un des répertoires système :

Alors, quelle est la solution à ce problème ? Simple, utilisez la commande sudo.

L’utilisateur qui exécute la commande sera invité à entrer son mot de passe de connexion. Une fois le mot de passe correct saisi, l’opération sera effectuée avec succès.
Bien que sudo soit sans aucun doute une commande incontournable pour quiconque travaille sur la ligne de commande sous Linux, il existe plusieurs autres détails connexes (et approfondis) que vous devriez connaître afin d’utiliser la commande de manière plus responsable et efficace. Et c’est exactement ce dont nous allons discuter ici dans cet article.
Mais avant d'aller plus loin, il convient de mentionner que toutes les commandes et instructions mentionnées dans cet article ont été testées sur Ubuntu avec le shell Bash.Qu’est-ce que sudo ?
La commande sudo, comme la plupart d’entre vous le savent déjà, est utilisée pour exécuter une commande avec des privilèges élevés (généralement en tant que root). Un exemple de cela a déjà été discuté dans la section d’introduction ci-dessus. Cependant, si vous le souhaitez, vous pouvez utiliser sudo pour exécuter la commande en tant qu’autre utilisateur (non-root).
Cela est réalisé grâce à l’option de ligne de commande -u que l’outil fournit. Par exemple, dans l’exemple montré ci-dessous, j’ai (himanshu) essayé de renommer un fichier dans le répertoire personnel d’un autre utilisateur (howtoforge), mais j’ai reçu une erreur ‘permission refusée’. Et ensuite, j’ai essayé la même commande ‘mv’ avec ‘sudo -u howtoforge’, la commande a réussi :

Tout utilisateur peut-il utiliser sudo ?
Non. Pour qu’un utilisateur puisse utiliser sudo, une entrée correspondant à cet utilisateur doit figurer dans le fichier /etc/sudoers. Le paragraphe suivant - tiré du site Web d’Ubuntu - devrait rendre cela plus clair :
Le fichier /etc/sudoers contrôle qui peut exécuter quelles commandes en tant que quels utilisateurs sur quelles machines et peut également contrôler des choses spéciales telles que si vous avez besoin d'un mot de passe pour des commandes particulières. Le fichier est composé d'alias (essentiellement des variables) et de spécifications d'utilisateur (qui contrôlent qui peut exécuter quoi).Si vous utilisez Ubuntu, il est facile de s’assurer qu’un utilisateur peut exécuter la commande sudo : il vous suffit de faire de ce compte utilisateur un ‘administrateur’. Cela peut être fait en allant dans Paramètres système… -> Comptes utilisateurs.

Déverrouillage de la fenêtre :

Ensuite, sélectionnez l’utilisateur dont vous souhaitez changer le type de compte, puis changez le type en ‘administrateur’

Cependant, si vous n’êtes pas sur Ubuntu, ou si votre distribution ne fournit pas cette fonctionnalité, vous pouvez modifier manuellement le fichier /etc/sudoers pour effectuer le changement. Vous devrez ajouter la ligne suivante dans ce fichier :
[user] ALL=(ALL:ALL) ALLInutile de dire que [user] doit être remplacé par le nom d’utilisateur du compte auquel vous accordez le privilège sudo. Une chose importante à mentionner ici est que la méthode officiellement suggérée pour modifier ce fichier est via la commande visudo - il vous suffit d’exécuter la commande suivante :
sudo visudoPour vous donner une idée de pourquoi c’est le cas, voici un extrait du manuel de visudo :
visudo édite le fichier sudoers de manière sécurisée. visudo verrouille le fichier sudoers contre des modifications simultanées multiples, fournit des vérifications de base et vérifie les erreurs de syntaxe. Si le fichier sudoers est actuellement en cours d'édition, vous recevrez un message vous demandant d'essayer à nouveau plus tard.Pour plus d’informations sur visudo, rendez-vous ici.
Qu’est-ce qu’une session sudo ?
Si vous utilisez fréquemment la commande sudo, je suis sûr que vous avez remarqué qu’après avoir saisi votre mot de passe avec succès une fois, vous pouvez exécuter plusieurs commandes sudo sans être invité à entrer le mot de passe. Mais après un certain temps, la commande sudo vous demande à nouveau votre mot de passe.
Ce comportement n’a rien à voir avec le nombre de commandes alimentées par sudo que vous exécutez, mais dépend plutôt du temps. Oui, par défaut, sudo ne demandera pas de mot de passe pendant 15 minutes après que l’utilisateur l’ait saisi une fois. Après ces 15 minutes, vous serez invité à entrer à nouveau le mot de passe.
Cependant, si vous le souhaitez, vous pouvez modifier ce comportement. Pour cela, ouvrez le fichier /etc/sudoers en utilisant la commande suivante :
sudo visudoEt allez à la ligne qui lit :
Defaults env_reset
et ajoutez la variable suivante (soulignée en gras ci-dessous) à la fin de la ligne
Defaults env_reset,timestamp_timeout=[new-value]Le champ [new-value] doit être remplacé par le nombre de minutes que vous souhaitez que votre session sudo dure. Par exemple, j’ai utilisé la valeur 40.

Dans le cas où vous souhaitez être invité à entrer le mot de passe chaque fois que vous utilisez la commande sudo, dans ce cas, vous pouvez attribuer la valeur ‘0’ à cette variable. Et pour ceux d’entre vous qui souhaitent que leur session sudo ne se termine jamais, vous pouvez attribuer la valeur ‘-1’.
Veuillez noter que l’utilisation de timestamp_timeout avec la valeur ‘-1’ est fortement déconseillée.
Le mot de passe sudo
Comme vous l’avez peut-être remarqué, chaque fois que sudo vous demande un mot de passe et que vous commencez à le saisir, rien ne s’affiche - pas même des astérisques, ce qui est généralement la norme. Bien que cela ne soit pas un gros problème en général, certains utilisateurs peuvent vouloir voir les astérisques affichés pour une raison quelconque.
La bonne nouvelle, c’est que c’est possible et assez facile à faire. Tout ce que vous avez à faire est de changer la ligne suivante dans le fichier /etc/sudoers :
Defaults env_reseten
Defaults env_reset,pwfeedbackEt enregistrez le fichier.
Maintenant, chaque fois que vous taperez le mot de passe sudo, un astérisque apparaîtra.

Quelques options de ligne de commande sudo importantes
En plus de l’option de ligne de commande -u (que nous avons déjà discutée au début de ce tutoriel), il existe d’autres options de ligne de commande sudo importantes qui méritent d’être mentionnées. Dans cette section, nous allons discuter de certaines d’entre elles.
L’option -k
Considérons un cas où vous venez d’exécuter une commande alimentée par sudo après avoir saisi votre mot de passe. Maintenant, comme vous le savez déjà, la session sudo reste active pendant 15 minutes par défaut. Supposons que pendant cette session, vous devez donner accès à quelqu’un à votre terminal, mais vous ne voulez pas qu’il puisse utiliser sudo. Que ferez-vous ?
Heureusement, il existe une option de ligne de commande -k qui permet aux utilisateurs de révoquer l’autorisation sudo. Voici ce que la page de manuel sudo a à dire sur cette option :
-k, --reset-timestamp
Lorsqu'il est utilisé sans commande, invalide les informations d'identification mises en cache de l'utilisateur. En d'autres termes, la prochaine fois que sudo est exécuté, un mot de passe sera requis. Cette option ne nécessite pas de mot de passe et a été ajoutée pour permettre à un utilisateur de révoquer les autorisations sudo à partir d'un fichier .logout.
Lorsqu'elle est utilisée en conjonction avec une commande ou une option qui peut nécessiter un mot de passe, cette option amènera sudo à ignorer les informations d'identification mises en cache de l'utilisateur. En conséquence, sudo demandera un mot de passe (si un est requis par la politique de sécurité) et ne mettra pas à jour les informations d'identification mises en cache de l'utilisateur.L’option -s
Il peut y avoir des moments où votre travail nécessite que vous exécutiez une multitude de commandes nécessitant des privilèges root, et vous ne voulez pas entrer le mot de passe sudo à chaque fois. De plus, vous ne voulez pas modifier la limite de temps de la session sudo en apportant des modifications au fichier /etc/sudoers.
Dans ce cas, vous pouvez vouloir utiliser l’option de ligne de commande -s de la commande sudo. Voici comment la page de manuel sudo l’explique :
-s, --shell
Exécute le shell spécifié par la variable d'environnement SHELL si elle est définie ou le shell spécifié par l'entrée de la base de données de mots de passe de l'utilisateur invoquant. Si une commande est spécifiée, elle est transmise au shell pour exécution via l'option -c du shell. Si aucune commande n'est spécifiée, un shell interactif est exécuté.Donc, fondamentalement, ce que cette option de ligne de commande fait, c’est :
- Lance un nouveau shell - pour quel shell, la variable d’environnement SHELL est référencée. Dans le cas où $SHELL est vide, le shell défini dans le fichier /etc/passwd est choisi.
- Si vous passez également un nom de commande avec l’option -s (par exemple : sudo -s whoami), alors la commande réelle qui est exécutée est : sudo /bin/bash -c whoami.
- Si vous n’essayez pas d’exécuter une autre commande (c’est-à-dire que vous essayez simplement d’exécuter sudo -s), alors vous obtenez un shell interactif avec des privilèges root.
Ce qui vaut la peine de garder à l’esprit ici, c’est que l’option de ligne de commande -s vous donne un shell avec des privilèges root, mais vous n’obtenez pas l’environnement root - c’est votre .bashrc qui est chargé. Cela signifie que, par exemple, dans le nouveau shell que sudo -s exécute, l’exécution de la commande whoami renverra toujours votre nom d’utilisateur, et non ‘root’.
L’option -i
L’option -i est similaire à l’option -s que nous venons de discuter. Cependant, il existe quelques différences. L’une des principales différences est que -i vous donne également l’environnement root, ce qui signifie que votre .bashrc (utilisateur) est ignoré. C’est comme devenir root sans se connecter explicitement en tant que root. De plus, vous n’avez pas non plus à entrer le mot de passe de l’utilisateur root.
*Important : Veuillez noter qu’il existe une commande su qui vous permet également de changer d’utilisateur (par défaut, elle vous permet de devenir root). Cette commande nécessite que vous saisissiez le mot de passe ‘root’. Pour éviter cela, vous pouvez également l’exécuter avec sudo (‘sudo su’) ; dans ce cas, vous n’aurez qu’à entrer votre mot de passe de connexion. Cependant, ‘su’ et ‘sudo su’ ont des différences sous-jacentes - pour les comprendre ainsi que pour en savoir plus sur la façon dont ‘sudo -i’ se compare à elles, rendez-vous ici.*
Conclusion
J’espère qu’à ce stade, vous avez au moins compris l’idée de base derrière sudo, et comment vous pouvez modifier son comportement par défaut. Essayez les ajustements du fichier /etc/sudoers que nous avons expliqués ici, et consultez également la discussion sur le forum (liée dans le dernier paragraphe) pour obtenir plus d’informations sur la commande sudo.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.