Créateur | Robert Coggeshall (d) et Cliff Spencer (d) |
---|---|
Développé par | Todd C. Miller (d) |
Dernière version | 1.9.16p1 ()[1] |
Dépôt | github.com/sudo-project/sudo |
Écrit en | C |
Système d'exploitation | Type Unix |
Type |
Logiciel de sécurité informatique (en) Utilitaire de ligne de commande (d) |
Licence | Licence ISC |
Site web | www.sudo.ws |
sudo (abréviation de "substitute user do", "super user do"[2] ou "switch user do"[3], en français : « se substituer à l'utilisateur pour faire », « faire en tant que super-utilisateur » ou « changer d'utilisateur pour faire ») est une commande informatique utilisée principalement dans les systèmes d'exploitation de type Unix.
Cette commande permet à un administrateur système d'accorder à certains utilisateurs (ou groupes d'utilisateurs) la possibilité de lancer une commande en tant qu'administrateur, ou en tant qu'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.
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.
Les autorisations de sudo sont définies dans le fichier /etc/sudoers. Ce fichier doit être modifié à l'aide de la commande visudo, car cette dernière vérifie, avant écriture du fichier, que sa syntaxe est correcte. En effet, une erreur dans le fichier peut bloquer définitivement l'accès à la machine.
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
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é.
macOS d'Apple, où l'utilisateur root est désactivé par défaut, a systématiquement recours à sudo pour effectuer des tâches d'administration depuis l'utilitaire Terminal.
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.
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).