sudo
sudo (abréviation de substitute user do, en anglais : « exécuter en se substituant à l'utilisateur »[1]) est une commande informatique utilisée principalement dans les systèmes d'exploitation de type Unix.
Cette commande permet à l'administrateur système d'accorder à certains utilisateurs (ou groupes d'utilisateurs) la possibilité de lancer une commande en tant qu'administrateur, ou comme autre utilisateur, tout en conservant une trace des commandes saisies et des arguments.
La commande est actuellement maintenue par Todd C. Miller, un programmeur d'OpenBSD.
Utilisation
L'utilitaire sudo s'utilise en ligne de commande, dans un terminal. Il sert par exemple à exécuter, en mode superutilisateur, des commandes ou des applications en console. Il faut faire précéder chacune des commandes à exécuter en mode superutilisateur par la commande sudo, de la manière suivante :
$ sudo <commande>
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 terme de ce laps de temps, il faut entrer de nouveau le mot de passe. La commande pour terminer la session sudo avant la fin des 15 minutes est :
$ sudo -k
La commande suivante permet d'être connecté en tant que root en interface de commande.
$ sudo -i
Pour lancer des applications graphiques avec les privilèges d'administration, il est de mise d'utiliser les pendants graphiques gksu, pour GNOME, ou kdesudo, pour KDE.
Configuration
Les autorisations de sudo sont définies dans le fichier /etc/sudoers. Ce fichier doit être édité à l'aide de la commande visudo.
Ce fichier précise quelles commandes peuvent être utilisées par quels utilisateurs avec les privilèges de quel utilisateur et s’il peut s’abstenir de taper son mot de passe. Pour obtenir le manuel complet de la configuration de ce fichier : man sudoers
Systèmes employant sudo
sudo est disponible sans être installé par défaut sur la plupart des systèmes Unix : BSD, Sun Solaris, Linux, etc. Il existe cependant des systèmes d’exploitation où le recours à sudo est systématisé.
Mac OS X d’Apple Inc., où l’utilisateur root est désactivé par défaut, a systématiquement recours à sudo pour effectuer des tâches d’administration depuis le Terminal.app (en).
La distribution Linux Ubuntu (et ses dérivées) utilise également cette commande comme moyen par défaut pour effectuer des tâches administratives, le compte root n'étant pas activé par défaut pour des raisons de sécurité et de stabilité du système.
Commandes similaires
En environnement graphique, il existe les commandes similaires gksudo et kdesudo.
Sur Windows, il existe une commande analogue à sudo, il s'agit de runas ; la partie sécurité est assurée par l'UAC (c'est l'analogue de la fonctionnalité sudoers).