]> granicus.if.org Git - apache/blob - docs/manual/suexec.html.fr
Rebuild
[apache] / docs / manual / suexec.html.fr
1 <?xml version="1.0" encoding="ISO-8859-1"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Support suEXEC - Serveur Apache HTTP</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
12 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
13 <body id="manual-page"><div id="page-header">
14 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p>
15 <p class="apache">Serveur Apache HTTP Version 2.5</p>
16 <img alt="" src="./images/feather.gif" /></div>
17 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
18 <div id="path">
19 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">Serveur HTTP</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="./">Version 2.5</a></div><div id="page-content"><div id="preamble"><h1>Support suEXEC</h1>
20 <div class="toplang">
21 <p><span>Langues Disponibles: </span><a href="./en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
22 <a href="./fr/suexec.html" title="Français">&nbsp;fr&nbsp;</a> |
23 <a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
24 <a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
25 <a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
26 </div>
27
28     <p>La fonctionnalité <strong>suEXEC</strong> permet
29     l'exécution des programmes <strong>CGI</strong> et
30     <strong>SSI</strong> sous un utilisateur autre que celui sous
31     lequel s'exécute le serveur web qui appelle ces programmes.
32     Normalement, lorsqu'un programme CGI ou SSI est lancé, il
33     s'exécute sous le même utilisateur que celui du serveur web qui
34     l'appelle.</p>
35
36     <p>Utilisée de manière appropriée, cette fonctionnalité peut
37     réduire considérablement les risques de sécurité encourus
38     lorsqu'on autorise les utilisateurs à développer et faire
39     s'exécuter des programmes CGI ou SSI de leur cru. Cependant, mal
40     configuré, suEXEC peut causer de nombreux problèmes et même créer
41     de nouvelles failles dans la sécurité de votre ordinateur. Si
42     vous n'êtes pas familier avec la gestion des programmes
43     <em>setuid root</em> et les risques de sécurité qu'ils comportent,
44     nous vous recommandons vivement de ne pas tenter
45     d'utiliser suEXEC.</p>
46   </div>
47 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#before">Avant de commencer</a></li>
48 <li><img alt="" src="./images/down.gif" /> <a href="#model">Modèle de sécurité de suEXEC</a></li>
49 <li><img alt="" src="./images/down.gif" /> <a href="#install">Configurer et installer suEXEC</a></li>
50 <li><img alt="" src="./images/down.gif" /> <a href="#enable">Activation et désactivation
51 de suEXEC</a></li>
52 <li><img alt="" src="./images/down.gif" /> <a href="#usage">Utilisation de suEXEC</a></li>
53 <li><img alt="" src="./images/down.gif" /> <a href="#debug">Débogage de suEXEC</a></li>
54 <li><img alt="" src="./images/down.gif" /> <a href="#jabberwock">Avis à la population !
55     Avertissements et exemples</a></li>
56 </ul></div>
57 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
58 <div class="section">
59 <h2><a name="before" id="before">Avant de commencer</a></h2>
60
61     <p>Avant de foncer tête baissée dans la lecture de ce document,
62     vous devez tenir compte de certaines hypothèses concernant vous-même
63     et l'environnement dans lequel vous allez utiliser suexec.</p>
64
65     <p>Premièrement, vous devez utiliser un système d'exploitation
66     UNIX ou dérivé, capable d'effectuer des opérations
67     <strong>setuid</strong> et <strong>setgid</strong>. Tous les
68     exemples de commande sont donnés en conséquence. D'autres
69     plates-formes, même si elles supportent suEXEC, peuvent
70     avoir une configuration différente.</p>
71
72     <p>Deuxièmement, vous devez être familier avec les concepts de base
73     relatifs à la sécurité de votre ordinateur et son administration.
74     Ceci implique la compréhension des opérations
75     <strong>setuid/setgid</strong> et des différents effets qu'elles
76     peuvent produire sur votre système et son niveau de sécurité.</p>
77
78     <p>Troisièmement, vous devez utiliser une version
79     <strong>non modifiée</strong> du code de suEXEC. L'ensemble du
80     code de suEXEC a été scruté et testé avec soin par les développeurs
81     et de nombreux bêta testeurs. Toutes les précautions ont été prises
82     pour s'assurer d'une base sûre de code non seulement simple, mais
83     aussi solide. La modification de ce code peut causer des problèmes
84     inattendus et de nouveaux risques de sécurité. Il est
85     <strong>vivement</strong> recommandé de ne pas modifier le code de
86     suEXEC, à moins que vous ne soyez un programmeur spécialiste des
87     particularités liées à la sécurité, et souhaitez partager votre
88     travail avec l'équipe de développement du serveur HTTP Apache afin
89     de pouvoir en discuter.</p>
90
91     <p>Quatrièmement et dernièrement, l'équipe de développement du
92     serveur HTTP Apache a décidé de ne
93     <strong>PAS</strong> inclure suEXEC dans l'installation par défaut
94     d'Apache httpd. Pour pouvoir mettre en oeuvre suEXEC, l'administrateur
95     doit porter la plus grande attention aux détails. Après avoir bien
96     réfléchi aux différents points de la configuration de suEXEC,
97     l'administrateur peut l'installer selon les méthodes classiques.
98     Les valeurs des paramètres de configuration doivent être
99     déterminées et spécifiées avec soin par l'administrateur, afin de
100     maintenir la sécurité du système de manière appropriée lors de
101     l'utilisation de la fonctionnalité suEXEC. C'est par le biais de
102     ce processus minutieux que nous espérons réserver
103     l'installation de suEXEC aux administrateurs prudents et
104     suffisamment déterminés à vouloir l'utiliser.</p>
105
106     <p>Vous êtes encore avec nous ? Oui ? Bien.
107     Alors nous pouvons continuer !</p>
108 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
109 <div class="section">
110 <h2><a name="model" id="model">Modèle de sécurité de suEXEC</a></h2>
111
112     <p>Avant d'installer et configurer suEXEC, nous allons tout d'abord
113     décrire le modèle de sécurité que vous êtes sur le point
114     d'implémenter. Vous devriez ainsi mieux comprendre ce qui se passe
115     vraiment à l'intérieur de suEXEC et quelles précautions ont été
116     prises pour préserver la sécurité de votre système.</p>
117
118     <p><strong>suEXEC</strong> est basé sur un programme "conteneur"
119     (wrapper) setuid qui est appelé par le serveur HTTP Apache principal.
120     Ce conteneur est appelé quand une requête HTTP concerne
121     un programme CGI ou SSI que l'administrateur
122     a décidé de faire s'exécuter
123     sous un utilisateur autre que celui du serveur principal.
124     Lorsqu'il reçoit une telle requête, Apache httpd fournit au conteneur
125     suEXEC le nom du programme, ainsi que les identifiants utilisateur
126     et groupe sous lesquels le programme doit s'exécuter.</p>
127
128     <p>Le conteneur effectue ensuite les vérifications suivantes afin
129     de déterminer la réussite ou l'échec du processus -- si une seule
130     de ces conditions n'est pas vérifiée, le programme journalise
131     l'erreur et se termine en retournant un code d'erreur, sinon il
132     continue :</p>
133
134     <ol>
135       <li>
136         <strong>L'utilisateur qui exécute le conteneur est-il un
137         utilisateur valide de ce système ?</strong>
138
139         <p class="indent">
140           Ceci permet de s'assurer que l'utilisateur qui exécute le
141           conteneur est vraiment un utilisateur appartenant au système.
142         </p>
143      </li>
144
145      <li>
146         <strong>Le conteneur a-t-il été appelé avec un nombre
147         d'arguments correct ?</strong>
148
149         <p class="indent">
150           Le conteneur ne s'exécutera que si on lui fournit un nombre
151           d'arguments correct. Le serveur HTTP apache sait quel est le
152           bon format des arguments. Si le conteneur ne reçoit pas un
153           nombre d'arguments correct, soit il a été modifié,
154           soit quelque chose ne va pas dans la portion suEXEC de
155           votre binaire Apache httpd.
156         </p>
157       </li>
158
159       <li>
160         <strong>Cet utilisateur valide est-il autorisé à exécuter le
161         conteneur ?</strong>
162
163         <p class="indent">
164           Cet utilisateur est-il celui autorisé à exécuter le
165           conteneur ? Un seul utilisateur (celui d'Apache) est
166           autorisé à exécuter ce programme.
167         </p>
168       </li>
169
170       <li>
171         <strong>Le chemin du programme CGI ou SSI cible est-il
172         non sûr ?</strong>
173
174         <p class="indent">
175           Le chemin du programme CGI ou SSI cible débute-t-il par un
176           '/' ou contient-il une référence arrière '..' ? Ceci est
177           interdit ; le programme CGI ou SSI cible doit se trouver dans
178           la hiérarchie de la racine des documents de suEXEC (voir
179           <code>--with-suexec-docroot=<em>DIR</em></code> ci-dessous).
180         </p>
181       </li>
182
183       <li>
184         <strong>Le nom utilisateur cible est-il valide ?</strong>
185
186         <p class="indent">
187           L'utilisateur cible existe-t-il ?
188         </p>
189       </li>
190
191       <li>
192         <strong>Le nom du groupe cible est-il valide ?</strong>
193
194         <p class="indent">
195           Le groupe cible existe-t-il ?
196         </p>
197       </li>
198
199       <li>
200         <strong>L'utilisateur cible n'est-il <em>PAS</em>
201         superutilisateur ?</strong>
202
203
204         <p class="indent">
205           suEXEc ne permet pas à
206           <code><em>root</em></code> d'exécuter des programmes CGI/SSI.
207         </p>
208       </li>
209
210       <li>
211         <strong>Le numéro de l'identifiant de l'utilisateur cible
212         est-il <em>SUPERIEUR</em> au numéro d'identifiant
213         minimum ?</strong>
214
215         <p class="indent">
216           Le numéro d'identifiant utilisateur minimum est défini à
217           l'exécution du script configure. Ceci vous permet de définir
218           le numéro d'identifiant utilisateur le plus bas qui sera
219           autorisé à éxécuter des programmes CGI/SSI. En particulier,
220           cela permet d'écarter les comptes système.
221         </p>
222       </li>
223
224       <li>
225         <strong>Le groupe cible n'est-il <em>PAS</em> le groupe
226         superutilisateur ?</strong>
227
228         <p class="indent">
229           Actuellement, suEXEC ne permet pas au groupe
230           <code><em>root</em></code> d'exécuter des programmes CGI/SSI.
231         </p>
232       </li>
233
234       <li>
235         <strong> Le numéro d'identifiant du groupe cible est-il
236         <em>SUPERIEUR</em> au numéro d'identifiant minimum ?</strong>
237
238         <p class="indent">
239           Le numéro d'identifiant de groupe minimum est spécifié lors
240           de l'exécution du script configure. Ceci vous permet de
241           définir l'identifiant de groupe le plus bas possible qui sera
242           autorisé à exécuter des programmes CGI/SSI, et est
243           particulièrement utile pour écarter les groupes "système".
244         </p>
245       </li>
246
247       <li>
248         <strong>Le conteneur peut-il obtenir avec succès l'identité
249         des utilisateur et groupe cibles ?</strong>
250
251         <p class="indent">
252           C'est ici que le programme obtient l'identité des utilisateur
253           et groupe cibles via des appels à setuid et setgid. De même,
254           la liste des accès groupe est initialisée avec tous les
255           groupes auxquels l'utilisateur cible appartient.
256         </p>
257       </li>
258
259       <li>
260         <strong>Peut-on se positionner dans le répertoire dans dequel
261         sont situés les programmes CGI/SSI ?</strong>
262
263         <p class="indent">
264           S'il n'existe pas, il ne peut pas contenir de fichier. Et si
265           l'on ne peut pas s'y positionner, il n'existe probablement
266           pas.
267         </p>
268       </li>
269
270       <li>
271         <strong>Le répertoire est-il dans l'espace web
272         de httpd ?</strong>
273
274         <p class="indent">
275           Si la requête concerne une portion de la racine du serveur,
276           le répertoire demandé est-il dans la hiérarchie de la racine
277           des documents de suEXEC ? Si la requête concerne un
278          <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>, le répertoire demandé est-il dans
279           la hiérarchie du répertoire défini comme le répertoire
280           utilisateur de suEXEC (voir les
281           <a href="#install">options de configuration de suEXEC</a>) ?
282         </p>
283       </li>
284
285       <li>
286         <strong>L'écriture dans le répertoire est-elle interdite pour
287         un utilisateur autre que le propriétaire </strong>
288
289         <p class="indent">
290           Le répertoire ne doit pas être ouvert aux autres
291           utilisateurs ; seul l'utilisateur propriétaire doit pouvoir
292           modifier le contenu du répertoire.
293         </p>
294       </li>
295
296       <li>
297         <strong>Le programme CGI/SSI cible existe-t-il ?</strong>
298
299         <p class="indent">
300           S'il n'existe pas, il ne peut pas être exécuté.
301         </p>
302       </li>
303
304       <li>
305         <strong>Les utilisateurs autres que le propriétaire n'ont-ils
306         <em>PAS</em> de droits en écriture sur le programme
307         CGI/SSI ?</strong>
308
309         <p class="indent">
310           Les utilisateurs autres que le propriétaire ne doivent pas
311           pouvoir modifier le programme CGI/SSI.
312         </p>
313       </li>
314
315       <li>
316         <strong>Le programme CGI/SSI n'est-il <em>PAS</em> setuid ou
317         setgid ?</strong>
318
319         <p class="indent">
320           Les programmes cibles ne doivent pas pouvoir modifier à
321           nouveau les identifiants utilisateur/groupe.
322         </p>
323       </li>
324
325       <li>
326         <strong>Le couple utilisateur/groupe cible est-il le même que
327         celui du programme ?</strong>
328
329         <p class="indent">
330           L'utilisateur est-il le propriétaire du fichier ?
331         </p>
332       </li>
333
334       <li>
335         <strong>Peut-on nettoyer avec succès l'environnement des
336         processus afin de garantir la sûreté des opérations ?</strong>
337
338         <p class="indent">
339           suExec nettoie l'environnement des processus en établissant
340           un chemin d'exécution sûr (défini lors de la configuration),
341           et en ne passant que les variables dont les noms font partie
342           de la liste de l'environnement sûr (créée de même lors de la
343           configuration).
344         </p>
345       </li>
346
347       <li>
348         <strong>Le conteneur peut-il avec succès se substituer au
349         programme CGI/SSI cible et s'exécuter ?</strong>
350
351         <p class="indent">
352           C'est là où l'exécution de suEXEC s'arrête et où commence
353           celle du programme CGI/ssi cible.
354         </p>
355       </li>
356     </ol>
357
358     <p>Ce sont les opérations standards effectuées par le modèle de
359     sécurité du conteneur suEXEC. Il peut paraître strict et est
360     susceptible d'imposer de nouvelles limitations et orientations
361     dans la conception des programmes CGI/SSI, mais il a été développé
362     avec le plus grand soin, étape par étape, en se focalisant sur
363     la sécurité.</p>
364
365     <p>Pour plus d'informations sur la mesure dans laquelle ce modèle
366     de sécurité peut limiter vos possibilités au regard de la
367     configuration du serveur, ainsi que les risques de sécurité qui
368     peuvent être évités grâce à une configuration appropriée de suEXEC,
369     se référer à la section <a href="#jabberwock">"Avis à la population !"</a> de ce document.</p>
370 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
371 <div class="section">
372 <h2><a name="install" id="install">Configurer et installer suEXEC</a></h2>
373
374     <p>C'est ici que nous entrons dans le vif du sujet.</p>
375
376     <p><strong>Options de configuration de suEXEC</strong><br />
377     </p>
378
379     <dl>
380       <dt><code>--enable-suexec</code></dt>
381
382       <dd>Cette option active la fonctionnalité suEXEC qui n'est
383       jamais installée ou activée par défaut. Au moins une option
384       <code>--with-suexec-xxxxx</code> doit accompagner l'option
385       <code>--enable-suexec</code> pour qu'APACI (l'utilitaire de
386       configuration de la compilation d'Apache) accepte votre demande
387       d'utilisation de la fonctionnalité suEXEC.</dd>
388
389       <dt><code>--with-suexec-bin=<em>PATH</em></code></dt>
390
391       <dd>Le chemin du binaire <code>suexec</code> doit être codé en
392       dur dans le serveur pour des raisons de sécurité. Cette option
393       vous permet de modifier le chemin par défaut.
394       <em>Par exemple</em>
395       <code>--with-suexec-bin=/usr/sbin/suexec</code></dd>
396
397       <dt><code>--with-suexec-caller=<em>UID</em></code></dt>
398
399       <dd>L'<a href="mod/mpm_common.html#user">utilisateur</a> sous
400       lequel httpd s'exécute habituellement. C'est le seul utilisateur
401       autorisé à exécuter le wrapper suEXEC.</dd>
402
403       <dt><code>--with-suexec-userdir=<em>DIR</em></code></dt>
404
405       <dd>Cette option définit le sous-répertoire de la hiérarchie des
406       répertoires utilisateurs dans lequel l'utilisation
407       de suEXEC sera autorisée. Tous les exécutables situés dans ce
408       répertoire seront exécutables par suEXEC sous l'utilisateur
409       cible ; ces programmes doivent donc être sûrs. Si vous utilisez
410       une directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>
411       "simple" (c'est à dire ne contenant pas de
412       "*"), l'option --with-suexec-userdir
413       devra contenir la même valeur. SuEXEC ne fonctionnera pas
414       correctement si la directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> contient une valeur
415       différente du répertoire home de l'utilisateur tel qu'il est
416       défini dans le fichier <code>passwd</code>. la valeur par défaut
417       est "<code>public_html</code>".<br />
418       Si vous avez plusieurs hôtes virtuels avec une directive
419       <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> différente
420       pour chacun d'entre eux, vous devrez faire en sorte que chaque
421       UserDir possède un répertoire parent commun ; donnez alors à
422       l'option --with-suexec-userdir le nom
423       de ce répertoire commun. <strong>Si tout ceci n'est pas défini
424       correctement, les requêtes CGI "~userdir" ne fonctionneront
425       pas !</strong></dd>
426
427       <dt><code>--with-suexec-docroot=<em>DIR</em></code></dt>
428
429       <dd>Cette option fonctionne comme la directive DocumentRoot pour
430       httpd. Il s'agit de la seule hiérarchie (en dehors des directives
431       <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>) dans laquelle la fonctionnalité suEXEC
432       pourra être utilisée. La valeur par défaut est la valeur de
433       <code>--datadir</code> accompagnée du suffixe
434       "<code>/htdocs</code>" ;
435       <em>Par exemple</em>, si vous exécutez configure avec
436       "<code>--datadir=/home/apache</code>", la valeur
437       "<code>/home/apache/htdocs</code>" sera utilisée par défaut comme
438       racine des documents pour le conteneur suEXEC.</dd>
439
440       <dt><code>--with-suexec-uidmin=<em>UID</em></code></dt>
441
442       <dd>Cette option définit l'identifiant utilisateur le plus bas
443       avec lequel un utilisateur pourra être la cible de
444       suEXEC. 500 ou 100 sont des valeurs courantes sur la plupart des
445       systèmes. la valeur par défaut est 100.</dd>
446
447       <dt><code>--with-suexec-gidmin=<em>GID</em></code></dt>
448
449       <dd>Cette option définit l'identifiant de groupe le plus bas
450       avec lequel un utilisateur pourra être la cible de
451       suEXEC. 100 est une valeur courante sur la plupart des
452       systèmes et est par conséquent la valeur par défaut.</dd>
453
454       <dt><code>--with-suexec-logfile=<em>FILE</em></code></dt>
455
456       <dd>Cette option permet de définir le fichier dans lequel
457       toutes les transactions et erreurs de suEXEC seront journalisées
458       (à des fins d'analyse ou de débogage). Par défaut, le fichier
459       journal se nomme "<code>suexec_log</code>" et se trouve dans votre
460       répertoire standard des fichiers journaux défini par
461       <code>--logfiledir</code></dd>
462
463       <dt><code>--with-suexec-safepath=<em>PATH</em></code></dt>
464
465       <dd>Cette option permet de définir une variable d'environnement
466       PATH sûre à passer aux exécutables CGI. La valeur par défaut
467       est "<code>/usr/local/bin:/usr/bin:/bin</code>".</dd>
468     </dl>
469
470     <h3>Compilation et installation du conteneur suEXEC</h3>
471       
472
473     <p>Si vous avez activé la fonctionnalité suEXEC à l'aide de
474      l'option <code>--enable-suexec</code>, le binaire
475      <code>suexec</code> sera automatiquement construit (en même temps
476      que httpd) lorsque vous exécuterez la commande
477      <code>make</code>.</p>
478
479      <p>Lorsque tous les composants auront été construits, vous pourrez
480      exécuter la commande <code>make install</code> afin de les
481      installer. Le binaire <code>suexec</code> sera installé dans le
482      répertoire défini à l'aide de l'option <code>--sbindir</code>. La
483      localisation par défaut est "/usr/local/apache2/bin/suexec".</p>
484      <p>Veuillez noter que vous aurez besoin des
485      <strong><em>privilèges root</em></strong> pour passer l'étape de
486      l'installation. Pour que le conteneur puisse changer
487      l'identifiant utilisateur, il doit avoir comme propriétaire
488      <code><em>root</em></code>, et les droits du fichier doivent
489      inclure le bit d'exécution setuserid.</p>
490    
491
492    <h3>&gt;Mise en place de permissions pour
493     paranoïaque</h3>
494         
495     <p>Bien que le conteneur suEXEC vérifie que l'utilisateur qui
496     l'appelle correspond bien à l'utilisateur spécifié à l'aide de
497     l'option <code>--with-suexec-caller</code> du programme
498     <code class="program"><a href="./programs/configure.html">configure</a></code>, il subsiste toujours le risque qu'un
499     appel système ou une bibliothèque fasse appel à suEXEC avant que
500     cette vérification ne soit exploitable sur votre système. Pour
501     tenir compte de ceci, et parce que c'est en général la meilleure
502     pratique, vous devez utiliser les permissions du système de
503     fichiers afin de vous assurer que seul le groupe sous lequel
504     s'exécute httpd puisse faire appel à suEXEC.</p>
505
506     <p>Si, par exemple, votre serveur web est configuré pour
507     s'exécuter en tant que :</p>
508
509 <div class="example"><p><code>
510     User www<br />
511     Group webgroup<br />
512 </code></p></div>
513
514     <p>et <code class="program"><a href="./programs/suexec.html">suexec</a></code> se trouve à
515     "/usr/local/apache2/bin/suexec", vous devez exécuter les
516     commandes</p>
517
518 <div class="example"><p><code>
519     chgrp webgroup /usr/local/apache2/bin/suexec<br />
520     chmod 4750 /usr/local/apache2/bin/suexec<br />
521 </code></p></div>
522
523     <p>Ceci permet de s'assurer que seul le groupe sous lequel httpd
524     s'exécute (ici webgroup) puisse faire appel au conteneur
525     suEXEC.</p>
526   
527 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
528 <div class="section">
529 <h2><a name="enable" id="enable">Activation et désactivation
530 de suEXEC</a></h2>
531
532     <p>Au démarrage, httpd vérifie la présence du fichier
533     <code class="program"><a href="./programs/suexec.html">suexec</a></code> dans le répertoire défini par
534     l'option <code>--sbindir</code> du script configure (le
535     répertoire par défaut est "/usr/local/apache/sbin/suexec"). Si
536     httpd trouve un conteneur suEXEC correctement configuré, il
537     enregistrera le message suivant dans le journal des erreurs :</p>
538
539 <div class="example"><p><code>
540     [notice] suEXEC mechanism enabled (wrapper: <var>/path/to/suexec</var>)
541 </code></p></div>
542
543     <p>Si ce message n'est pas généré au démarrage du serveur, ce
544     dernier ne trouve probablement pas le programme conteneur à
545     l'endroit où il est sensé être, ou l'exécutable suexec n'est pas
546     installé en <em>setuid root</em>.</p>
547
548      <p>Si le serveur HTTP Apache est déjà en cours d'exécution, et si
549      vous activez le mécanisme suEXEC pour la première fois, vous
550      devez arrêter et redémarrer httpd. Un redémarrage
551      à l'aide d'un simple signal HUP ou USR1 suffira. </p>
552      <p>Pour désactiver suEXEC, vous devez supprimer le fichier
553      <code class="program"><a href="./programs/suexec.html">suexec</a></code>, puis arrêter et redémarrer
554      httpd.</p>
555 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
556 <div class="section">
557 <h2><a name="usage" id="usage">Utilisation de suEXEC</a></h2>
558
559     <p>Les requêtes pour des programmes CGI ne feront appel au
560     conteneur suEXEC que si elles concernent un hôte virtuel
561     contenant une directive <code class="directive"><a href="./mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>, ou si elles sont
562     traitées par <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code>.</p>
563
564     <p><strong>Hôtes virtuels :</strong><br /> Une des méthodes
565     d'utilisation du conteneur suEXEC consiste à insérer une
566     directive <code class="directive"><a href="./mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code> dans une section
567     <code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>. En définissant
568     des valeurs différentes de celles du serveur principal, toutes les
569     requêtes pour des ressources CGI seront exécutées sous
570     les <em>User</em> et <em>Group</em> définis pour cette section
571     <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>. Si cette
572     directive est absente de la section <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>, l'utilisateur du
573     serveur principal sera pris par défaut</p>
574
575     <p><strong>Répertoires des utilisateurs :</strong><br /> Avec
576     cette méthode, les
577     requêtes traitées par <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> appelleront le
578     conteneur suEXEC pour exécuter le programme CGI sous l'identifiant
579     utilisateur du répertoire utilisateur concerné. Seuls prérequis
580     pour pouvoir accéder à cette fonctionnalité : l'exécution des CGI
581     doit être activée pour l'utilisateur concerné, et le script doit
582     passer avec succès le test des <a href="#model">vérifications de
583     sécurité</a> décrit plus haut. Voir aussi l'
584     <a href="#install">option de compilation</a>
585     <code>--with-suexec-userdir</code>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
586 <div class="section">
587 <h2><a name="debug" id="debug">Débogage de suEXEC</a></h2>
588
589     <p>Le conteneur suEXEC va écrire ses informations de journalisation
590     dans le fichier défini par l'option de compilation
591     <code>--with-suexec-logfile</code> comme indiqué plus haut. Si vous
592     pensez avoir configuré et installé correctement le conteneur,
593     consultez ce journal, ainsi que le journal des erreurs du serveur
594     afin de déterminer l'endroit où vous avez fait fausse route.</p>
595
596 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
597 <div class="section">
598 <h2><a name="jabberwock" id="jabberwock">Avis à la population !
599     Avertissements et exemples</a></h2>
600
601     <p><strong>NOTE !</strong> Cette section est peut-être incomplète.
602     Pour en consulter la dernière révision, voir la version de la <a href="http://httpd.apache.org/docs/trunk/suexec.html">Documentation en ligne</a>.</p>
603
604     <p>Quelques points importants du conteneur peuvent
605     imposer des contraintes du point de vue de la configuration du
606     serveur. Veuillez en prendre connaissance avant de soumettre un
607     rapport de bogue à propos de suEXEC.</p>
608
609     <ul>
610       <li><strong>Points importants de suEXEC</strong></li>
611
612       <li>
613         Limitations concernant la hiérarchie.
614
615         <p class="indent">
616           Pour des raisons de sécurité et d'efficacité, toutes les
617           requêtes suEXEC ne doivent concerner que des ressources
618           situées dans la racine des documents définie pour les
619           requêtes concernant un hôte virtuel, ou des ressources
620           situées dans la racine des documents définies pour les
621           requêtes concernant un répertoire utilisateur. Par exemple,
622           si vous avez configuré quatre hôtes virtuels, vous devrez
623           définir la structure des racines de documents de vos hôtes
624           virtuels en dehors d'une hiérarchie de documents principale
625           de httpd, afin de tirer parti de suEXEC dans le contexte des
626           hôtes virtuels (Exemple à venir).
627         </p>
628       </li>
629
630       <li>
631         La variable d'environnement PATH de suEXEC
632
633         <p class="indent">
634           Modifier cette variable peut s'avérer dangereux. Assurez-vous
635           que tout chemin que vous ajoutez à cette variable est un
636           répertoire <strong>de confiance</strong>. Vous n'avez
637           probablement pas l'intention d'ouvrir votre serveur de façon
638           à ce que l'on puisse y exécuter un cheval de Troie.
639         </p>
640       </li>
641
642       <li>
643         Modification de suEXEC
644
645         <p class="indent">
646           Encore une fois, ceci peut vous causer de
647           <strong>graves ennuis</strong> si vous vous y essayez sans
648           savoir ce que vous faites. Evitez de vous y risquer dans la
649           mesure du possible.
650         </p>
651       </li>
652     </ul>
653
654 </div></div>
655 <div class="bottomlang">
656 <p><span>Langues Disponibles: </span><a href="./en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
657 <a href="./fr/suexec.html" title="Français">&nbsp;fr&nbsp;</a> |
658 <a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
659 <a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
660 <a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
661 </div><div id="footer">
662 <p class="apache">Copyright 2012 The Apache Software Foundation.<br />Autorisé sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
663 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/directives.html">Directives</a> | <a href="./faq/">FAQ</a> | <a href="./glossary.html">Glossaire</a> | <a href="./sitemap.html">Plan du site</a></p></div>
664 </body></html>