]> granicus.if.org Git - apache/blob - docs/manual/suexec.xml.fr
Rebuild.
[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: 1673945 -->
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>--enable-suexec-capabilities</code></dt>
383
384       <dd><strong>Sp&eacute;cifique &agrave; Linux :</strong> Normalement, le binaire
385       <code>suexec</code> est install&eacute; en mode "setuid/setgid root", ce
386       qui lui permet de s'ex&eacute;cuter avec la totalit&eacute; des privil&egrave;ges de
387       l'utilisateur root. Avec cette option, le binaire
388       <code>suexec</code> sera install&eacute; avec seulement les bits
389       setuid/setgid "capability" d&eacute;finis, ce qui constitue un
390       sous-ensemble des privil&egrave;ges de root pour les op&eacute;rations de
391       suexec. Notez que dans ce mode, le binaire <code>suexec</code> ne
392       sera pas en mesure d'&eacute;crire dans un fichier journal ; il est donc
393       recommand&eacute; dans ce mode d'utiliser les options
394       <code>--with-suexec-syslog --without-suexec-logfile</code>, afin
395       d'utiliser la jounalisation syslog.</dd>
396
397       <dt><code>--with-suexec-bin=<em>PATH</em></code></dt>
398
399       <dd>Le chemin du binaire <code>suexec</code> doit &ecirc;tre cod&eacute; en
400       dur dans le serveur pour des raisons de s&eacute;curit&eacute;. Cette option
401       vous permet de modifier le chemin par d&eacute;faut.
402       <em>Par exemple</em>
403       <code>--with-suexec-bin=/usr/sbin/suexec</code></dd>
404
405       <dt><code>--with-suexec-caller=<em>UID</em></code></dt>
406
407       <dd>L'<a href="mod/mpm_common.html#user">utilisateur</a> sous
408       lequel httpd s'ex&eacute;cute habituellement. C'est le seul utilisateur
409       autoris&eacute; &agrave; ex&eacute;cuter le wrapper suEXEC.</dd>
410
411       <dt><code>--with-suexec-userdir=<em>DIR</em></code></dt>
412
413       <dd>Cette option d&eacute;finit le sous-r&eacute;pertoire de la hi&eacute;rarchie des
414       r&eacute;pertoires utilisateurs dans lequel l'utilisation
415       de suEXEC sera autoris&eacute;e. Tous les ex&eacute;cutables situ&eacute;s dans ce
416       r&eacute;pertoire seront ex&eacute;cutables par suEXEC sous l'utilisateur
417       cible ; ces programmes doivent donc &ecirc;tre s&ucirc;rs. Si vous utilisez
418       une directive <directive module="mod_userdir">UserDir</directive>
419       "simple" (c'est &agrave; dire ne contenant pas de
420       "*"), l'option --with-suexec-userdir
421       devra contenir la m&ecirc;me valeur. SuEXEC ne fonctionnera pas
422       correctement si la directive <directive
423       module="mod_userdir">UserDir</directive> contient une valeur
424       diff&eacute;rente du r&eacute;pertoire home de l'utilisateur tel qu'il est
425       d&eacute;fini dans le fichier <code>passwd</code>. la valeur par d&eacute;faut
426       est "<code>public_html</code>".<br />
427       Si vous avez plusieurs h&ocirc;tes virtuels avec une directive
428       <directive module="mod_userdir">UserDir</directive> diff&eacute;rente
429       pour chacun d'entre eux, vous devrez faire en sorte que chaque
430       UserDir poss&egrave;de un r&eacute;pertoire parent commun ; donnez alors &agrave;
431       l'option --with-suexec-userdir le nom
432       de ce r&eacute;pertoire commun. <strong>Si tout ceci n'est pas d&eacute;fini
433       correctement, les requ&ecirc;tes CGI "~userdir" ne fonctionneront
434       pas !</strong></dd>
435
436       <dt><code>--with-suexec-docroot=<em>DIR</em></code></dt>
437
438       <dd>Cette option fonctionne comme la directive DocumentRoot pour
439       httpd. Il s'agit de la seule hi&eacute;rarchie (en dehors des directives
440       <directive module="mod_userdir"
441       >UserDir</directive>) dans laquelle la fonctionnalit&eacute; suEXEC
442       pourra &ecirc;tre utilis&eacute;e. La valeur par d&eacute;faut est la valeur de
443       <code>--datadir</code> accompagn&eacute;e du suffixe
444       "<code>/htdocs</code>" ;
445       <em>Par exemple</em>, si vous ex&eacute;cutez configure avec
446       "<code>--datadir=/home/apache</code>", la valeur
447       "<code>/home/apache/htdocs</code>" sera utilis&eacute;e par d&eacute;faut comme
448       racine des documents pour le conteneur suEXEC.</dd>
449
450       <dt><code>--with-suexec-uidmin=<em>UID</em></code></dt>
451
452       <dd>Cette option d&eacute;finit l'identifiant utilisateur le plus bas
453       avec lequel un utilisateur pourra &ecirc;tre la cible de
454       suEXEC. 500 ou 100 sont des valeurs courantes sur la plupart des
455       syst&egrave;mes. la valeur par d&eacute;faut est 100.</dd>
456
457       <dt><code>--with-suexec-gidmin=<em>GID</em></code></dt>
458
459       <dd>Cette option d&eacute;finit l'identifiant de groupe le plus bas
460       avec lequel un utilisateur pourra &ecirc;tre la cible de
461       suEXEC. 100 est une valeur courante sur la plupart des
462       syst&egrave;mes et est par cons&eacute;quent la valeur par d&eacute;faut.</dd>
463
464       <dt><code>--with-suexec-logfile=<em>FILE</em></code></dt>
465
466       <dd>Cette option permet de d&eacute;finir le fichier dans lequel
467       toutes les transactions et erreurs de suEXEC seront journalis&eacute;es
468       (&agrave; des fins d'analyse ou de d&eacute;bogage). Par d&eacute;faut, le fichier
469       journal se nomme "<code>suexec_log</code>" et se trouve dans votre
470       r&eacute;pertoire standard des fichiers journaux d&eacute;fini par
471       <code>--logfiledir</code></dd>
472
473       <dt><code>--with-suexec-syslog</code></dt>
474
475       <dd>Avec cette option, suexec enregistrera les messages d'erreurs
476       et d'informations dans le journal syslog. Cette option doit &ecirc;tre
477       utilis&eacute;e conjointement avec l'option
478       <code>--without-suexec-logfile</code>.</dd>
479
480       <dt><code>--with-suexec-safepath=<em>PATH</em></code></dt>
481
482       <dd>Cette option permet de d&eacute;finir une variable d'environnement
483       PATH s&ucirc;re &agrave; passer aux ex&eacute;cutables CGI. La valeur par d&eacute;faut
484       est "<code>/usr/local/bin:/usr/bin:/bin</code>".</dd>
485     </dl>
486
487     <section>
488       <title>Compilation et installation du conteneur suEXEC</title>
489
490     <p>Si vous avez activ&eacute; la fonctionnalit&eacute; suEXEC &agrave; l'aide de
491      l'option <code>--enable-suexec</code>, le binaire
492      <code>suexec</code> sera automatiquement construit (en m&ecirc;me temps
493      que httpd) lorsque vous ex&eacute;cuterez la commande
494      <code>make</code>.</p>
495
496      <p>Lorsque tous les composants auront &eacute;t&eacute; construits, vous pourrez
497      ex&eacute;cuter la commande <code>make install</code> afin de les
498      installer. Le binaire <code>suexec</code> sera install&eacute; dans le
499      r&eacute;pertoire d&eacute;fini &agrave; l'aide de l'option <code>--sbindir</code>. La
500      localisation par d&eacute;faut est "/usr/local/apache2/bin/suexec".</p>
501      <p>Veuillez noter que vous aurez besoin des
502      <strong><em>privil&egrave;ges root</em></strong> pour passer l'&eacute;tape de
503      l'installation. Pour que le conteneur puisse changer
504      l'identifiant utilisateur, il doit avoir comme propri&eacute;taire
505      <code><em>root</em></code>, et les droits du fichier doivent
506      inclure le bit d'ex&eacute;cution setuserid.</p>
507    </section>
508
509    <section>
510         <title>>Mise en place de permissions pour
511     parano&iuml;aque</title>
512     <p>Bien que le conteneur suEXEC v&eacute;rifie que l'utilisateur qui
513     l'appelle correspond bien &agrave; l'utilisateur sp&eacute;cifi&eacute; &agrave; l'aide de
514     l'option <code>--with-suexec-caller</code> du programme
515     <program>configure</program>, il subsiste toujours le risque qu'un
516     appel syst&egrave;me ou une biblioth&egrave;que fasse appel &agrave; suEXEC avant que
517     cette v&eacute;rification ne soit exploitable sur votre syst&egrave;me. Pour
518     tenir compte de ceci, et parce que c'est en g&eacute;n&eacute;ral la meilleure
519     pratique, vous devez utiliser les permissions du syst&egrave;me de
520     fichiers afin de vous assurer que seul le groupe sous lequel
521     s'ex&eacute;cute httpd puisse faire appel &agrave; suEXEC.</p>
522
523     <p>Si, par exemple, votre serveur web est configur&eacute; pour
524     s'ex&eacute;cuter en tant que :</p>
525
526 <highlight language="config">
527 User www
528 Group webgroup
529       </highlight>
530
531     <p>et <program>suexec</program> se trouve &agrave;
532     "/usr/local/apache2/bin/suexec", vous devez ex&eacute;cuter les
533     commandes</p>
534
535 <example>
536     chgrp webgroup /usr/local/apache2/bin/suexec<br />
537     chmod 4750 /usr/local/apache2/bin/suexec<br />
538 </example>
539
540     <p>Ceci permet de s'assurer que seul le groupe sous lequel httpd
541     s'ex&eacute;cute (ici webgroup) puisse faire appel au conteneur
542     suEXEC.</p>
543   </section>
544 </section>
545
546 <section id="enable"><title>Activation et d&eacute;sactivation
547 de suEXEC</title>
548
549     <p>Au d&eacute;marrage, httpd v&eacute;rifie la pr&eacute;sence du fichier
550     <program>suexec</program> dans le r&eacute;pertoire d&eacute;fini par
551     l'option <code>--sbindir</code> du script configure (le
552     r&eacute;pertoire par d&eacute;faut est "/usr/local/apache/sbin/suexec"). Si
553     httpd trouve un conteneur suEXEC correctement configur&eacute;, il
554     enregistrera le message suivant dans le journal des erreurs :</p>
555
556 <example>
557     [notice] suEXEC mechanism enabled (wrapper: <var>/path/to/suexec</var>)
558 </example>
559
560     <p>Si ce message n'est pas g&eacute;n&eacute;r&eacute; au d&eacute;marrage du serveur, ce
561     dernier ne trouve probablement pas le programme conteneur &agrave;
562     l'endroit o&ugrave; il est sens&eacute; &ecirc;tre, ou l'ex&eacute;cutable suexec n'est pas
563     install&eacute; en <em>setuid root</em>.</p>
564
565      <p>Si le serveur HTTP Apache est d&eacute;j&agrave; en cours d'ex&eacute;cution, et si
566      vous activez le m&eacute;canisme suEXEC pour la premi&egrave;re fois, vous
567      devez arr&ecirc;ter et red&eacute;marrer httpd. Un red&eacute;marrage
568      &agrave; l'aide d'un simple signal HUP ou USR1 suffira. </p>
569      <p>Pour d&eacute;sactiver suEXEC, vous devez supprimer le fichier
570      <program>suexec</program>, puis arr&ecirc;ter et red&eacute;marrer
571      httpd.</p>
572 </section>
573
574 <section id="usage"><title>Utilisation de suEXEC</title>
575
576     <p>Les requ&ecirc;tes pour des programmes CGI ne feront appel au
577     conteneur suEXEC que si elles concernent un h&ocirc;te virtuel
578     contenant une directive <directive
579     module="mod_suexec">SuexecUserGroup</directive>, ou si elles sont
580     trait&eacute;es par <module>mod_userdir</module>.</p>
581
582     <p><strong>H&ocirc;tes virtuels :</strong><br /> Une des m&eacute;thodes
583     d'utilisation du conteneur suEXEC consiste &agrave; ins&eacute;rer une
584     directive <directive
585     module="mod_suexec">SuexecUserGroup</directive> dans une section
586     <directive module="core">VirtualHost</directive>. En d&eacute;finissant
587     des valeurs diff&eacute;rentes de celles du serveur principal, toutes les
588     requ&ecirc;tes pour des ressources CGI seront ex&eacute;cut&eacute;es sous
589     les <em>User</em> et <em>Group</em> d&eacute;finis pour cette section
590     <directive
591     module="core" type="section">VirtualHost</directive>. Si cette
592     directive est absente de la section <directive module="core"
593     type="section">VirtualHost</directive>, l'utilisateur du
594     serveur principal sera pris par d&eacute;faut</p>
595
596     <p><strong>R&eacute;pertoires des utilisateurs :</strong><br /> Avec
597     cette m&eacute;thode, les
598     requ&ecirc;tes trait&eacute;es par <module>mod_userdir</module> appelleront le
599     conteneur suEXEC pour ex&eacute;cuter le programme CGI sous l'identifiant
600     utilisateur du r&eacute;pertoire utilisateur concern&eacute;. Seuls pr&eacute;requis
601     pour pouvoir acc&eacute;der &agrave; cette fonctionnalit&eacute; : l'ex&eacute;cution des CGI
602     doit &ecirc;tre activ&eacute;e pour l'utilisateur concern&eacute;, et le script doit
603     passer avec succ&egrave;s le test des <a href="#model">v&eacute;rifications de
604     s&eacute;curit&eacute;</a> d&eacute;crit plus haut. Voir aussi l'
605     <a href="#install">option de compilation</a>
606     <code>--with-suexec-userdir</code>.</p> </section>
607
608 <section id="debug"><title>D&eacute;bogage de suEXEC</title>
609
610     <p>Le conteneur suEXEC va &eacute;crire ses informations de journalisation
611     dans le fichier d&eacute;fini par l'option de compilation
612     <code>--with-suexec-logfile</code> comme indiqu&eacute; plus haut,
613     ou vers syslog si l'option <code>--with-suexec-syslog</code> est
614     utilis&eacute;e. Si vous
615     pensez avoir configur&eacute; et install&eacute; correctement le conteneur,
616     consultez ce journal, ainsi que le journal des erreurs du serveur
617     afin de d&eacute;terminer l'endroit o&ugrave; vous avez fait fausse
618     route. Si vous utilisez une distribution binaire, la commande
619     <code>"suexec -V"</code> vous permet de d&eacute;terminer quelles options
620     ont &eacute;t&eacute; utilis&eacute;es pour compiler suexec.</p>
621
622 </section>
623
624 <section id="jabberwock"><title>Avis &agrave; la population !
625     Avertissements et exemples</title>
626
627     <p><strong>NOTE !</strong> Cette section est peut-&ecirc;tre incompl&egrave;te.
628     Pour en consulter la derni&egrave;re r&eacute;vision, voir la version de la <a
629     href="http://httpd.apache.org/docs/&httpd.docs;/suexec.html"
630     >Documentation en ligne</a>.</p>
631
632     <p>Quelques points importants du conteneur peuvent
633     imposer des contraintes du point de vue de la configuration du
634     serveur. Veuillez en prendre connaissance avant de soumettre un
635     rapport de bogue &agrave; propos de suEXEC.</p>
636
637     <ul>
638       <li><strong>Points importants de suEXEC</strong></li>
639
640       <li>
641         Limitations concernant la hi&eacute;rarchie.
642
643         <p class="indent">
644           Pour des raisons de s&eacute;curit&eacute; et d'efficacit&eacute;, toutes les
645           requ&ecirc;tes suEXEC ne doivent concerner que des ressources
646           situ&eacute;es dans la racine des documents d&eacute;finie pour les
647           requ&ecirc;tes concernant un h&ocirc;te virtuel, ou des ressources
648           situ&eacute;es dans la racine des documents d&eacute;finies pour les
649           requ&ecirc;tes concernant un r&eacute;pertoire utilisateur. Par exemple,
650           si vous avez configur&eacute; quatre h&ocirc;tes virtuels, vous devrez
651           d&eacute;finir la structure des racines de documents de vos h&ocirc;tes
652           virtuels en dehors d'une hi&eacute;rarchie de documents principale
653           de httpd, afin de tirer parti de suEXEC dans le contexte des
654           h&ocirc;tes virtuels (Exemple &agrave; venir).
655         </p>
656       </li>
657
658       <li>
659         La variable d'environnement PATH de suEXEC
660
661         <p class="indent">
662           Modifier cette variable peut s'av&eacute;rer dangereux. Assurez-vous
663           que tout chemin que vous ajoutez &agrave; cette variable est un
664           r&eacute;pertoire <strong>de confiance</strong>. Vous n'avez
665           probablement pas l'intention d'ouvrir votre serveur de fa&ccedil;on
666           &agrave; ce que l'on puisse y ex&eacute;cuter un cheval de Troie.
667         </p>
668       </li>
669
670       <li>
671         Modification de suEXEC
672
673         <p class="indent">
674           Encore une fois, ceci peut vous causer de
675           <strong>graves ennuis</strong> si vous vous y essayez sans
676           savoir ce que vous faites. Evitez de vous y risquer dans la
677           mesure du possible.
678         </p>
679       </li>
680     </ul>
681
682 </section>
683
684 </manualpage>