Ceci est une ancienne révision du document !
Sudo
Toutes versions
Maintenu et adapté de sudo par Id2ndR.
Sudo permet d'executer une commande en tant qu'un autre utilisateur.
Cette documentation est accessible sous les deux formes suivantes. Les rédacteurs n'étant pas d'accord sur le choix de l'une des deux, vous pouvez choisir à votre convenance.
- un ensemble de plusieurs pages traitant chacune d'un problème différent. Vous êtes actuellement sur la page principale de cet ensemble.
- une page unique.
Introduction
Devant le nombre impressionnant1) de personnes affectant un mot de passe au compte root2) sous Ubuntu, essayons d'expliquer comment Ubuntu gère les droits d'administration et expliquons le fonctionnement de sudo
et gksudo
/kdesu
.
Ce document s'adresse à vous si vous vous êtes déjà exclamé:
- "Comment effectuer des tâches administratives sous Ubuntu?"
- "À l'installation, on ne m'a pas demandé le mot de passe root"
- "
su
ne fonctionne pas, Ubuntu c'est compliqué" - "Ubuntu c'est nul, je peux pas faire facilement mes tâches d'administration comme sous d'autres distributions."
Vous devriez comprendre le pourquoi du comment…
Plan
- La page sur laquelle vous êtes actuellement précise les généralités sur
sudo
. - La page ajout détaille comment ajouter un utilisateur au groupe d'administration.
- La page avantages présente les avantages, inconvénients, les slogans et les mythes à propos de
sudo
. - La page options détaille quelques options de configuration.
Origine de sudo
Pour comprendre la présence d'un outil tel que sudo
, il faut d'abord comprendre la notion de superutilisateur : qui est-il et quel est son rôle ?
À propos du superutilisateur...
- Le système d'exploitation a besoin d'un compte privilégié afin de réaliser certaines tâches particulières (souvent des tâches administratives et sensibles, pouvant corrompre le système). C'est à cela qu'est dévolu le compte superutilisateur, communément appelé root.
- Comme le superutilisateur a la possibilité de corrompre le système, il est dangereux de toujours être connecté sous cette identité. Pour tous les systèmes d'exploitation récents (Unix depuis sa création en 1969, Windows NT4/2000/XP3), Mac OS X), il y a une séparation entre le compte système et les comptes utilisateurs. Ils sont distincts.
... et de sudo
Toutefois, l'utilisateur peut parfois nécessiter d'effectuer certaines tâches administratives, particulièrement lors de la résolution de problèmes de fonctionnement du système. L'utilitaire sudo
(pour "superuser do") permet à un administrateur système de donner à un utilisateur (ou un groupe d'utilisateurs) la possibilité d'exécuter une ou toutes les commandes en tant que superutilisateur, tout en gardant une trace des commandes tapées et des arguments. (Plus d'informations à propos de ''sudo'')
Par défaut, le mot de passe du compte superutilisateur est bloqué sous Ubuntu. Ceci signifie donc que vous ne pouvez pas vous connecter en tant que root ou utiliser la commande su
4). L'installateur de Ubuntu configure plutôt l'utilitaire sudo
de façon à ce que l'utilisateur créé durant l'installation puisse effectuer toutes les tâches administratives.
Autrement dit, vous pouvez utiliser la commande sudo
pour effectuer les tâches nécessitant les privilèges du superutilisateur. Tous les programmes d'administration dans les menus d'applications utilisent un système graphique associé à sudo
(gksudo
sous GNOME et kdesu
sous KDE) vous demandant votre mot de passe pour s'exécuter; que ce soient gksudo
, kdesu
ou sudo
dans un terminal qui vous demandent un mot de passe, c'est VOTRE mot de passe utilisateur qui est requis.
Aucun mot de passe n'est associé au compte root et root n'en a pas besoin.
Utilisation
L'utilitaire sudo
s'utilise en ligne de commande, dans un terminal. Il sert à exécuter, en mode superutilisateur, des commandes ou des applications en console. Pour lancer des applications graphiques avec les privilèges d'administration, il est de mise d'utiliser les pendants graphiques gksudo
, pour GNOME, ou kdesu
, pour KDE.
sudo
sudo
s'utilise de la manière suivante :
$ sudo <commande>
Ainsi, vous devrez faire précéder chacune de vos commandes à exécuter en mode superutilisateur de sudo
.
Le mot de passe demandé est celui de l'utilisateur courant. La commande sera exécutée si le mot de passe entré est correct et que l'utilisateur courant peut effectuer des tâches d'administration. Le mot de passe est mémorisé pour une durée de 15 minutes; au bout de ce laps de temps, il faudra entrer de nouveau le mot de passe. Pour terminer la session sudo
avant la fin des 15 minutes, entrez la commande:
$ sudo -k
Lorsque de nombreuses commandes sont à entrer, vous pouvez ouvrir un terminal en mode superutilisateur.
gksudo
gksudo
est le pendant graphique de sudo
pour l'environnement GNOME. Il est utilisé par toutes les applications du menu Système → Administration, nécessitant les droits d'administration afin d'être lancées. Il s'utilise de la même façon que sudo
, c'est-à-dire que gksudo
doit précéder la commande ou l'application à lancer.
gksudo
peut être utilisé, par exemple, avec un lanceur, pour lancer une application qui a besoin des droits du superutilisateur pour s'exécuter. Lorsque gksudo
est appelé, une fenêtre de saisie de mot de passe est affichée à l'écran. Tout comme pour sudo
, c'est le mot de passe de l'utilisateur courant qui est requis. L'application ou la commande ne sera exécutée que si le mot de passe est correct et que l'utilisateur peut exécuter des tâches d'administration.
Attention: exécuter par un simple double-clic une commande ou un programme avec les privilèges d'administration est potentiellement dangereux! Par exemple, lancer Nautilus avec les droits du superutilisateur est vraiment risqué: une pression accidentelle sur la touche Suppr alors qu'un fichier ou un dossier vital au système d'exploitation est sélectionné pourrait casser complétement le système!
kdesu
kdesu
est le pendant graphique de sudo
pour l'environnement KDE. Il s'utilise de la même façon que gksudo
pour GNOME.
Pour Kubuntu/KDE, il est d'autant plus important de ne pas affecter de mot de passe au compte root.
Quand utiliser sudo ou gksudo/kdesu ?
Le wiki anglophone de Ubuntu recommande de NE JAMAIS utiliser sudo
pour lancer une application graphique. Vous devez toujours utiliser gksudo
ou kdesu
pour lancer de tels programmes; autrement, de nouvelles tentatives d'ouverture de programmes pourraient échouer.
La règle est donc simple :
- Utiliser
sudo
pour les commandes et les programmes fonctionnant dans une console; - Utiliser
gksudo
oukdesu
pour les programmes graphique.
À l'heure actuelle, on retrouve de nombreuses fois dans cette documentation et dans le forum la commande sudo gedit
pour lancer l'éditeur de texte gEdit avec les droits d'administration. Il serait grandement préférable de la subsituer par gksudo gedit
(sous Ubuntu) et kdesu kate
(sous Kubuntu). Toutefois, il faut noter que sudo gedit
fonctionne sous Ubuntu, alors que sudo kate
ne fonctionne pas sous Kubuntu.
Une console superutilisateur
Utiliser sudo
pour lancer une commande ne pose pas un réel problème. Toutefois, il peut être plutôt désagréable de l'utiliser pour lancer une longue procédure nécessitant plusieurs interventions en mode superutilisateur. Dans ces cas, vous pouvez lancer un terminal superutilisateur, qui vous permettra alors de prendre l'identité de root. Vous n'aurez donc plus besoin de saisir sudo
devant chacune des actions à effectuer pour la durée de cette session en console. Toutefois, aucune trace des actions posées n'est conservée en mémoire. Il est déconseillé d'ouvrir un terminal superutilisateur.
Pour entrer en mode superutilisateur, saisissez la commande suivante dans un terminal:
$ sudo -s
Pour quitter le mode superutilisateur, saisissez simplement, dans ce même terminal, l'instruction:
# exit
su
(pour "switch user") permet de changer d'identité, de prendre l'identité d'un autre utilisateur. Vous ne pouvez pas utiliser la commande su
pour prendre l'identité du superutilisateur (su root
). Toutefois, vous pouvez l'utiliser sans problème pour prendre l'identité d'un autre utilisateur enregistré de votre ordinateur (par exemple: su bob
).