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