Révision : 22/10/00
 
  Introduction  
 
Un remerciement à Olivier Hoarau pour avoir rédigé cette documentation sur la commande sudo. Les quelques modifications (corrections, màj des liens) ont été faites en accord avec son auteur. Les applications nommées dans cette fiche ont été utilisées sur un PowerMac 7500 et une distribution LinuxPPC 1999.

Sudo est une appli hyper intéressante car elle permet de configurer très simplement les droits d'exécution de certaines commandes des utilisateurs du système, en clair avec sudo, vous pouvez définir quel utilisateur aura le droit de lancer une connexion ppp, faire un shutdown, monter un cd-rom et j'en passe. Ca vous évite de manipuler et de mettre des bits suid un peu partout. 
Vous trouverez sur le site officiel de sudo, la version tar.gz et RPM, pour info j'ai installé la dernière version stable sudo.v1.6.2p1-1, plutôt que la version béta qu'on peut y trouver. La version tar.gz se présente sous la forme de sources qu'il faut compiler.
 

 
 
Comment faire ?
 
 
Installation

Ce paragraphe traite de la version tar.gz qu'on peut récupérer sur le site.Ý En tant que root, on passe par les étapes classiques: 

gunzipÝ cu-sudo_v1_6_2p1_tar.tar.gz 
tar xvf cu-sudo_v1_6_2p1_tar 
cd sudo.v1.6.2p1/ 
./configure 
./make 
./make install 

Le programme d'install va vous créer un fichier de config sous /etc qui a pour nom sudoers, un exécutable pour éditer et modifier ce fichier visudo qui se trouve dans /usr/local/sbin et l'exécutable sudo qui se trouve lui même dans /usr/local/bin
Voici les droits des dits fichiers: 

-r--r----- 1 root root 456 nov 10 21:44 /etc/sudoers 
---x--x--x 1 root root 31116 nov 10 21:09 /usr/local/sbin/visudo 
---s--x--x 1 root root 52204 nov 10 21:09 /usr/local/bin/sudo 

A noter les droits un peu bizarre de sudo

Evidemment si les chemins ne vous plaisent pas libre à vous de modifier le fichier configure qui se trouve dans le répertoire de sudo

ATTENTION sudo doit se trouver dans une partition avec l'option de montage suid et non nosuid, pour info si vous avez defaults, il n'y a pas de problèmes suid est compris dedans. 
 

Comment ça marche

Le fichier de config est /etc/sudoers, pour l'éditer et le modifier vous devez obligatoirement lancer en tant que root visudo, visudo se présente sous la forme d'un éditeur texte avec les commandes de vi, mais en plus de ça il permet de détecter les erreurs de syntaxe et de faire prendre en compte les modifs à sudo
Voici un fichier /etc/sudoers type, on va prendre comme exemple simple deux utilisateurs à qui ont va donner le droit de récupérer les news (fetchnews), d'arrêter la machine (halt), de lancer et d'arrêter une connexion PPP (ppp-on, ppp-off). 

# sudoers file. 

# This file MUST be edited with the 'visudo' command as root. 

# See the man page for the details on how to write a sudoers file. 

# Host alias specification 

# User alias specification 

# Cmnd alias specification 
Cmnd_Alias PPPON=/etc/ppp/ppp-on 
Cmnd_Alias PPPOFF=/etc/ppp/ppp-off 
Cmnd_Alias HALT=/sbin/halt 
Cmnd_Alias FETCHNEWS=/usr/local/sbin/fetchnews 

# User privilege specification 
root ALL=(ALL) ALL 

olivier ALL=NOPASSWD:PPPON,NOPASSWD:PPPOFF,NOPASSWD:HALT,NOPASSWD:FETCHNEWS 
veronique ALL=NOPASSWD:PPPON,NOPASSWD:PPPOFF,NOPASSWD:HALT,NOPASSWD:FETCHNEWS 

Pour arrêter la machine, il faut donc taper: 

sudo halt 

A noter que si on n'avait pas mis NOPASSWD devant l'alias HALT, sudo demanderait le mot de passe de l'utilisateur. 

sudo -l 

Permet de voir la liste des commandes super utilisateurs auquel on a droit. 

Sudo s'est pas seulement ça, il suffit de faire un man sudo pour s'en convaincre, mais déjà l'exemple donné plus haut permet déjà de satisfaire énormément de besoins. 

 
 
Liens utiles
 
 
Site officiel : http://www.courtesan.com/courtesan/products/sudo/

Référence : http://funix.free.fr

Archive RPM : sudo-1.6.2p1-1.ppc.rpm
 

 
 
 
Pour ajouter à ce site vos propres expériences et
autres renseignements, écrivez à son Auteur Web