<h2>But de ce document</h2>
<p class="spip">Ce document me sert de <strong class="spip">mémo</strong> pour <strong class="spip">installer et configurer sudo sur une Debian Testing</strong>. Je le diffuse en espérant qu’il puisse servir à d’autres personnes.</p>

<p class="spip">Je rappelle que <strong class="spip">sudo</strong> permet de donner les droits de root (ou d’un autre utilisateur) à certains utilisateurs et sous certaines conditions.</p>

<h2>Pré-requis</h2>
<p class="spip">Avoir installé une Debian de Base :
<br /></p>
<li> cf mon autre document sur ce sujet : <a href="http://www.coagul.org/article.php3?id_article=158" class="spip_out">http://www.coagul.org/article.php3 ?id_article=158</a>
<h2>Installation de sudo</h2>
<p class="spip">Paquet à installer :</p>

<p class="spip"><code class='spip_code' dir='ltr'>apt-get install sudo</code></p>

<h2>Exemple de configuration de sudo pour kppp</h2>
<p class="spip">Dans cet exemple, nous allons autoriser l’utilisateur <strong class="spip">pglinux</strong> à lancer <strong class="spip">kppp</strong> pour se connecter à Internet. Par défaut il n’y a que root qui peut lancer kppp. Sans sudo, la solution la plus simple consiste à activer le <strong class="spip">bit</strong> <strong class="spip">suid</strong> de kppp avec la commande suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'>chmod 4777 /usr/bin/kppp</code></p>

<p class="spip">Mais cette commande autorise tous les utilisateurs à prendre les droits de root sur kppp ce qui peut ouvrir une faille de sécurité.</p>

<p class="spip">Pour remédier à ce problème, il est préférable d’utiliser sudo.</p>

<p class="spip">Pour configurer sudo, il faut éditer le fichier « <strong class="spip">/etc/sudoers </strong> ». Il est possible d’éditer ce fichier directement, mais il est préférable de passer par la commande « <strong class="spip"> visudo </strong> » qui validera le fichier avant de le mettre en service.</p>

<p class="spip">Dans ce fichier, il faut ajouter la ligne suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'>pglinux localhost=(root)NOPASSWD:/usr/bin/kppp</code></p>

<p class="spip">Cette commande permet à pglinux d’exécuter la commande kppp sous le compte de root sans demander de mot de passe depuis l’ordinateur localhost.</p>

<h2>Comment exécuter un programme en utilisant sudo </h2>
<p class="spip">Une fois le fichier « <strong class="spip">/etc/sudoers </strong> » correctement configuré, il suffit d’écrire sudo devant la commande à exécuter pour bénéficier des droits spéciaux :</p>

<p class="spip"><code class='spip_code' dir='ltr'>sudo /usr/bin/kppp</code></p>

<h2>Autre exemple plus complet</h2>
<p class="spip">Dans l’exemple, ci-dessous, les 3 premières lignes permettent de définir des alias pour donner à un groupe d’utilisateurs la possibilité d’utiliser un groupe de commandes, depuis un groupe d’ordinateurs.</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>#La liste MES_USERS a le droit depuis MES_ORDIS à prendre les droits de root<br />
#sans demande de mot de passe pour la liste de commandes MES_COMMANDES<br />
User_Alias MES_USERS     = pglinux,tony<br />
Host_Alias MES_ORDIS     = localhost,192.0.0.*<br />
Cmnd_Alias MES_COMMANDES = /usr/bin/kppp,/usr/sbin/ppp<br />
MES_USERS MES_ORDIS=(root)NOPASSWD:MES_COMMANDES</code></div>
<p class="spip">Autrement, il faut toujours laisser dans le fichier « /etc/sudoers », la ligne suivante pour autoriser root à tout faire :</p>

<p class="spip"><code class='spip_code' dir='ltr'>root    ALL=(ALL) ALL</code></p>

<h2>Problème rencontré </h2>
<p class="spip">En utilisant sudo, j’ai rencontré un bug de KDE :
<br /></p>
<li> Impossible de lancer « sudo kppp » depuis une icône du lanceur rapide en ayant modifié les menus avec KMenuEdit.
<br /><li> En modifiant un icône manuellement, ça fonctionne, mais il n’est pas possible de modifier la commande d’un icône du lanceur d’applications.
<p class="spip">J’ai donc remis le suid bit pour lancer kppp mais uniquement pour le group dip qui est affecté par défaut à kppp :</p>

<p class="spip"><code class='spip_code' dir='ltr'>chmod 4754 /usr/bin/kppp </code></p>

<p class="spip">Ensuite, il faut ajouter l’utilisateur pglinux (dans mon cas) au group dip :</p>

<p class="spip"><code class='spip_code' dir='ltr'>usermod -G dip pglinux </code></p>

<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>22/12/04</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.11</td><td>14/01/05</td><td>Suppression du sommaire</td></tr>
<tr class="row_even"><td> </td><td> </td><td> </td></tr>
</tbody>
</table>