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