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