]> granicus.if.org Git - apache/blob - docs/manual/suexec.html.fr
Patch from info@mathijs.info to use 2.4 authz syntax.
[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 <meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
5 <!--
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7               This file is generated from xml source: DO NOT EDIT
8         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
9       -->
10 <title>Support suEXEC - Serveur Apache HTTP Version 2.5</title>
11 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
12 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
13 <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" />
14 <script src="./style/scripts/prettify.min.js" type="text/javascript">
15 </script>
16
17 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
18 <body id="manual-page"><div id="page-header">
19 <p class="menu"><a href="./mod/">Modules</a> | <a href="./mod/quickreference.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>
20 <p class="apache">Serveur Apache HTTP Version 2.5</p>
21 <img alt="" src="./images/feather.gif" /></div>
22 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
23 <div id="path">
24 <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>
25 <div class="toplang">
26 <p><span>Langues Disponibles: </span><a href="./en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
27 <a href="./fr/suexec.html" title="Français">&nbsp;fr&nbsp;</a> |
28 <a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
29 <a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
30 <a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="Türkçe">&nbsp;tr&nbsp;</a></p>
31 </div>
32
33     <p>La fonctionnalité <strong>suEXEC</strong> permet
34     l'exécution des programmes <strong>CGI</strong> et
35     <strong>SSI</strong> sous un utilisateur autre que celui sous
36     lequel s'exécute le serveur web qui appelle ces programmes.
37     Normalement, lorsqu'un programme CGI ou SSI est lancé, il
38     s'exécute sous le même utilisateur que celui du serveur web qui
39     l'appelle.</p>
40
41     <p>Utilisée de manière appropriée, cette fonctionnalité peut
42     réduire considérablement les risques de sécurité encourus
43     lorsqu'on autorise les utilisateurs à développer et faire
44     s'exécuter des programmes CGI ou SSI de leur cru. Cependant, mal
45     configuré, suEXEC peut causer de nombreux problèmes et même créer
46     de nouvelles failles dans la sécurité de votre ordinateur. Si
47     vous n'êtes pas familier avec la gestion des programmes
48     <em>setuid root</em> et les risques de sécurité qu'ils comportent,
49     nous vous recommandons vivement de ne pas tenter
50     d'utiliser suEXEC.</p>
51   </div>
52 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#before">Avant de commencer</a></li>
53 <li><img alt="" src="./images/down.gif" /> <a href="#model">Modèle de sécurité de suEXEC</a></li>
54 <li><img alt="" src="./images/down.gif" /> <a href="#install">Configurer et installer suEXEC</a></li>
55 <li><img alt="" src="./images/down.gif" /> <a href="#enable">Activation et désactivation
56 de suEXEC</a></li>
57 <li><img alt="" src="./images/down.gif" /> <a href="#usage">Utilisation de suEXEC</a></li>
58 <li><img alt="" src="./images/down.gif" /> <a href="#debug">Débogage de suEXEC</a></li>
59 <li><img alt="" src="./images/down.gif" /> <a href="#jabberwock">Avis à la population !
60     Avertissements et exemples</a></li>
61 </ul><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
62 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
63 <div class="section">
64 <h2><a name="before" id="before">Avant de commencer</a></h2>
65
66     <p>Avant de foncer tête baissée dans la lecture de ce document,
67     vous devez tenir compte de certaines hypothèses concernant vous-même
68     et l'environnement dans lequel vous allez utiliser suexec.</p>
69
70     <p>Premièrement, vous devez utiliser un système d'exploitation
71     UNIX ou dérivé, capable d'effectuer des opérations
72     <strong>setuid</strong> et <strong>setgid</strong>. Tous les
73     exemples de commande sont donnés en conséquence. D'autres
74     plates-formes, même si elles supportent suEXEC, peuvent
75     avoir une configuration différente.</p>
76
77     <p>Deuxièmement, vous devez être familier avec les concepts de base
78     relatifs à la sécurité de votre ordinateur et son administration.
79     Ceci implique la compréhension des opérations
80     <strong>setuid/setgid</strong> et des différents effets qu'elles
81     peuvent produire sur votre système et son niveau de sécurité.</p>
82
83     <p>Troisièmement, vous devez utiliser une version
84     <strong>non modifiée</strong> du code de suEXEC. L'ensemble du
85     code de suEXEC a été scruté et testé avec soin par les développeurs
86     et de nombreux bêta testeurs. Toutes les précautions ont été prises
87     pour s'assurer d'une base sûre de code non seulement simple, mais
88     aussi solide. La modification de ce code peut causer des problèmes
89     inattendus et de nouveaux risques de sécurité. Il est
90     <strong>vivement</strong> recommandé de ne pas modifier le code de
91     suEXEC, à moins que vous ne soyez un programmeur spécialiste des
92     particularités liées à la sécurité, et souhaitez partager votre
93     travail avec l'équipe de développement du serveur HTTP Apache afin
94     de pouvoir en discuter.</p>
95
96     <p>Quatrièmement et dernièrement, l'équipe de développement du
97     serveur HTTP Apache a décidé de ne
98     <strong>PAS</strong> inclure suEXEC dans l'installation par défaut
99     d'Apache httpd. Pour pouvoir mettre en oeuvre suEXEC, l'administrateur
100     doit porter la plus grande attention aux détails. Après avoir bien
101     réfléchi aux différents points de la configuration de suEXEC,
102     l'administrateur peut l'installer selon les méthodes classiques.
103     Les valeurs des paramètres de configuration doivent être
104     déterminées et spécifiées avec soin par l'administrateur, afin de
105     maintenir la sécurité du système de manière appropriée lors de
106     l'utilisation de la fonctionnalité suEXEC. C'est par le biais de
107     ce processus minutieux que nous espérons réserver
108     l'installation de suEXEC aux administrateurs prudents et
109     suffisamment déterminés à vouloir l'utiliser.</p>
110
111     <p>Vous êtes encore avec nous ? Oui ? Bien.
112     Alors nous pouvons continuer !</p>
113 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
114 <div class="section">
115 <h2><a name="model" id="model">Modèle de sécurité de suEXEC</a></h2>
116
117     <p>Avant d'installer et configurer suEXEC, nous allons tout d'abord
118     décrire le modèle de sécurité que vous êtes sur le point
119     d'implémenter. Vous devriez ainsi mieux comprendre ce qui se passe
120     vraiment à l'intérieur de suEXEC et quelles précautions ont été
121     prises pour préserver la sécurité de votre système.</p>
122
123     <p><strong>suEXEC</strong> est basé sur un programme "conteneur"
124     (wrapper) setuid qui est appelé par le serveur HTTP Apache principal.
125     Ce conteneur est appelé quand une requête HTTP concerne
126     un programme CGI ou SSI que l'administrateur
127     a décidé de faire s'exécuter
128     sous un utilisateur autre que celui du serveur principal.
129     Lorsqu'il reçoit une telle requête, Apache httpd fournit au conteneur
130     suEXEC le nom du programme, ainsi que les identifiants utilisateur
131     et groupe sous lesquels le programme doit s'exécuter.</p>
132
133     <p>Le conteneur effectue ensuite les vérifications suivantes afin
134     de déterminer la réussite ou l'échec du processus -- si une seule
135     de ces conditions n'est pas vérifiée, le programme journalise
136     l'erreur et se termine en retournant un code d'erreur, sinon il
137     continue :</p>
138
139     <ol>
140       <li>
141         <strong>L'utilisateur qui exécute le conteneur est-il un
142         utilisateur valide de ce système ?</strong>
143
144         <p class="indent">
145           Ceci permet de s'assurer que l'utilisateur qui exécute le
146           conteneur est vraiment un utilisateur appartenant au système.
147         </p>
148      </li>
149
150      <li>
151         <strong>Le conteneur a-t-il été appelé avec un nombre
152         d'arguments correct ?</strong>
153
154         <p class="indent">
155           Le conteneur ne s'exécutera que si on lui fournit un nombre
156           d'arguments correct. Le serveur HTTP apache sait quel est le
157           bon format des arguments. Si le conteneur ne reçoit pas un
158           nombre d'arguments correct, soit il a été modifié,
159           soit quelque chose ne va pas dans la portion suEXEC de
160           votre binaire Apache httpd.
161         </p>
162       </li>
163
164       <li>
165         <strong>Cet utilisateur valide est-il autorisé à exécuter le
166         conteneur ?</strong>
167
168         <p class="indent">
169           Cet utilisateur est-il celui autorisé à exécuter le
170           conteneur ? Un seul utilisateur (celui d'Apache) est
171           autorisé à exécuter ce programme.
172         </p>
173       </li>
174
175       <li>
176         <strong>Le chemin du programme CGI ou SSI cible est-il
177         non sûr ?</strong>
178
179         <p class="indent">
180           Le chemin du programme CGI ou SSI cible débute-t-il par un
181           '/' ou contient-il une référence arrière '..' ? Ceci est
182           interdit ; le programme CGI ou SSI cible doit se trouver dans
183           la hiérarchie de la racine des documents de suEXEC (voir
184           <code>--with-suexec-docroot=<em>DIR</em></code> ci-dessous).
185         </p>
186       </li>
187
188       <li>
189         <strong>Le nom utilisateur cible est-il valide ?</strong>
190
191         <p class="indent">
192           L'utilisateur cible existe-t-il ?
193         </p>
194       </li>
195
196       <li>
197         <strong>Le nom du groupe cible est-il valide ?</strong>
198
199         <p class="indent">
200           Le groupe cible existe-t-il ?
201         </p>
202       </li>
203
204       <li>
205         <strong>L'utilisateur cible n'est-il <em>PAS</em>
206         superutilisateur ?</strong>
207
208
209         <p class="indent">
210           suEXEc ne permet pas à
211           <code><em>root</em></code> d'exécuter des programmes CGI/SSI.
212         </p>
213       </li>
214
215       <li>
216         <strong>Le numéro de l'identifiant de l'utilisateur cible
217         est-il <em>SUPERIEUR</em> au numéro d'identifiant
218         minimum ?</strong>
219
220         <p class="indent">
221           Le numéro d'identifiant utilisateur minimum est défini à
222           l'exécution du script configure. Ceci vous permet de définir
223           le numéro d'identifiant utilisateur le plus bas qui sera
224           autorisé à éxécuter des programmes CGI/SSI. En particulier,
225           cela permet d'écarter les comptes système.
226         </p>
227       </li>
228
229       <li>
230         <strong>Le groupe cible n'est-il <em>PAS</em> le groupe
231         superutilisateur ?</strong>
232
233         <p class="indent">
234           Actuellement, suEXEC ne permet pas au groupe
235           <code><em>root</em></code> d'exécuter des programmes CGI/SSI.
236         </p>
237       </li>
238
239       <li>
240         <strong> Le numéro d'identifiant du groupe cible est-il
241         <em>SUPERIEUR</em> au numéro d'identifiant minimum ?</strong>
242
243         <p class="indent">
244           Le numéro d'identifiant de groupe minimum est spécifié lors
245           de l'exécution du script configure. Ceci vous permet de
246           définir l'identifiant de groupe le plus bas possible qui sera
247           autorisé à exécuter des programmes CGI/SSI, et est
248           particulièrement utile pour écarter les groupes "système".
249         </p>
250       </li>
251
252       <li>
253         <strong>Le conteneur peut-il obtenir avec succès l'identité
254         des utilisateur et groupe cibles ?</strong>
255
256         <p class="indent">
257           C'est ici que le programme obtient l'identité des utilisateur
258           et groupe cibles via des appels à setuid et setgid. De même,
259           la liste des accès groupe est initialisée avec tous les
260           groupes auxquels l'utilisateur cible appartient.
261         </p>
262       </li>
263
264       <li>
265         <strong>Peut-on se positionner dans le répertoire dans dequel
266         sont situés les programmes CGI/SSI ?</strong>
267
268         <p class="indent">
269           S'il n'existe pas, il ne peut pas contenir de fichier. Et si
270           l'on ne peut pas s'y positionner, il n'existe probablement
271           pas.
272         </p>
273       </li>
274
275       <li>
276         <strong>Le répertoire est-il dans l'espace web
277         de httpd ?</strong>
278
279         <p class="indent">
280           Si la requête concerne une portion de la racine du serveur,
281           le répertoire demandé est-il dans la hiérarchie de la racine
282           des documents de suEXEC ? Si la requête concerne un
283          <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>, le répertoire demandé est-il dans
284           la hiérarchie du répertoire défini comme le répertoire
285           utilisateur de suEXEC (voir les
286           <a href="#install">options de configuration de suEXEC</a>) ?
287         </p>
288       </li>
289
290       <li>
291         <strong>L'écriture dans le répertoire est-elle interdite pour
292         un utilisateur autre que le propriétaire </strong>
293
294         <p class="indent">
295           Le répertoire ne doit pas être ouvert aux autres
296           utilisateurs ; seul l'utilisateur propriétaire doit pouvoir
297           modifier le contenu du répertoire.
298         </p>
299       </li>
300
301       <li>
302         <strong>Le programme CGI/SSI cible existe-t-il ?</strong>
303
304         <p class="indent">
305           S'il n'existe pas, il ne peut pas être exécuté.
306         </p>
307       </li>
308
309       <li>
310         <strong>Les utilisateurs autres que le propriétaire n'ont-ils
311         <em>PAS</em> de droits en écriture sur le programme
312         CGI/SSI ?</strong>
313
314         <p class="indent">
315           Les utilisateurs autres que le propriétaire ne doivent pas
316           pouvoir modifier le programme CGI/SSI.
317         </p>
318       </li>
319
320       <li>
321         <strong>Le programme CGI/SSI n'est-il <em>PAS</em> setuid ou
322         setgid ?</strong>
323
324         <p class="indent">
325           Les programmes cibles ne doivent pas pouvoir modifier à
326           nouveau les identifiants utilisateur/groupe.
327         </p>
328       </li>
329
330       <li>
331         <strong>Le couple utilisateur/groupe cible est-il le même que
332         celui du programme ?</strong>
333
334         <p class="indent">
335           L'utilisateur est-il le propriétaire du fichier ?
336         </p>
337       </li>
338
339       <li>
340         <strong>Peut-on nettoyer avec succès l'environnement des
341         processus afin de garantir la sûreté des opérations ?</strong>
342
343         <p class="indent">
344           suExec nettoie l'environnement des processus en établissant
345           un chemin d'exécution sûr (défini lors de la configuration),
346           et en ne passant que les variables dont les noms font partie
347           de la liste de l'environnement sûr (créée de même lors de la
348           configuration).
349         </p>
350       </li>
351
352       <li>
353         <strong>Le conteneur peut-il avec succès se substituer au
354         programme CGI/SSI cible et s'exécuter ?</strong>
355
356         <p class="indent">
357           C'est là où l'exécution de suEXEC s'arrête et où commence
358           celle du programme CGI/ssi cible.
359         </p>
360       </li>
361     </ol>
362
363     <p>Ce sont les opérations standards effectuées par le modèle de
364     sécurité du conteneur suEXEC. Il peut paraître strict et est
365     susceptible d'imposer de nouvelles limitations et orientations
366     dans la conception des programmes CGI/SSI, mais il a été développé
367     avec le plus grand soin, étape par étape, en se focalisant sur
368     la sécurité.</p>
369
370     <p>Pour plus d'informations sur la mesure dans laquelle ce modèle
371     de sécurité peut limiter vos possibilités au regard de la
372     configuration du serveur, ainsi que les risques de sécurité qui
373     peuvent être évités grâce à une configuration appropriée de suEXEC,
374     se référer à la section <a href="#jabberwock">"Avis à la population !"</a> de ce document.</p>
375 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
376 <div class="section">
377 <h2><a name="install" id="install">Configurer et installer suEXEC</a></h2>
378
379     <p>C'est ici que nous entrons dans le vif du sujet.</p>
380
381     <p><strong>Options de configuration de suEXEC</strong><br />
382     </p>
383
384     <dl>
385       <dt><code>--enable-suexec</code></dt>
386
387       <dd>Cette option active la fonctionnalité suEXEC qui n'est
388       jamais installée ou activée par défaut. Au moins une option
389       <code>--with-suexec-xxxxx</code> doit accompagner l'option
390       <code>--enable-suexec</code> pour qu'APACI (l'utilitaire de
391       configuration de la compilation d'Apache) accepte votre demande
392       d'utilisation de la fonctionnalité suEXEC.</dd>
393
394       <dt><code>--enable-suexec-capabilities</code></dt>
395
396       <dd><strong>Spécifique à Linux :</strong> Normalement, le binaire
397       <code>suexec</code> est installé en mode "setuid/setgid root", ce
398       qui lui permet de s'exécuter avec la totalité des privilèges de
399       l'utilisateur root. Avec cette option, le binaire
400       <code>suexec</code> sera installé avec seulement les bits
401       setuid/setgid "capability" définis, ce qui constitue un
402       sous-ensemble des privilèges de root pour les opérations de
403       suexec. Notez que dans ce mode, le binaire <code>suexec</code> ne
404       sera pas en mesure d'écrire dans un fichier journal ; il est donc
405       recommandé dans ce mode d'utiliser les options
406       <code>--with-suexec-syslog --without-suexec-logfile</code>, afin
407       d'utiliser la jounalisation syslog.</dd>
408
409       <dt><code>--with-suexec-bin=<em>PATH</em></code></dt>
410
411       <dd>Le chemin du binaire <code>suexec</code> doit être codé en
412       dur dans le serveur pour des raisons de sécurité. Cette option
413       vous permet de modifier le chemin par défaut.
414       <em>Par exemple</em>
415       <code>--with-suexec-bin=/usr/sbin/suexec</code></dd>
416
417       <dt><code>--with-suexec-caller=<em>UID</em></code></dt>
418
419       <dd>L'<a href="mod/mpm_common.html#user">utilisateur</a> sous
420       lequel httpd s'exécute habituellement. C'est le seul utilisateur
421       autorisé à exécuter le wrapper suEXEC.</dd>
422
423       <dt><code>--with-suexec-userdir=<em>DIR</em></code></dt>
424
425       <dd>Cette option définit le sous-répertoire de la hiérarchie des
426       répertoires utilisateurs dans lequel l'utilisation
427       de suEXEC sera autorisée. Tous les exécutables situés dans ce
428       répertoire seront exécutables par suEXEC sous l'utilisateur
429       cible ; ces programmes doivent donc être sûrs. Si vous utilisez
430       une directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>
431       "simple" (c'est à dire ne contenant pas de
432       "*"), l'option --with-suexec-userdir
433       devra contenir la même valeur. SuEXEC ne fonctionnera pas
434       correctement si la directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> contient une valeur
435       différente du répertoire home de l'utilisateur tel qu'il est
436       défini dans le fichier <code>passwd</code>. la valeur par défaut
437       est "<code>public_html</code>".<br />
438       Si vous avez plusieurs hôtes virtuels avec une directive
439       <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> différente
440       pour chacun d'entre eux, vous devrez faire en sorte que chaque
441       UserDir possède un répertoire parent commun ; donnez alors à
442       l'option --with-suexec-userdir le nom
443       de ce répertoire commun. <strong>Si tout ceci n'est pas défini
444       correctement, les requêtes CGI "~userdir" ne fonctionneront
445       pas !</strong></dd>
446
447       <dt><code>--with-suexec-docroot=<em>DIR</em></code></dt>
448
449       <dd>Cette option fonctionne comme la directive DocumentRoot pour
450       httpd. Il s'agit de la seule hiérarchie (en dehors des directives
451       <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>) dans laquelle la fonctionnalité suEXEC
452       pourra être utilisée. La valeur par défaut est la valeur de
453       <code>--datadir</code> accompagnée du suffixe
454       "<code>/htdocs</code>" ;
455       <em>Par exemple</em>, si vous exécutez configure avec
456       "<code>--datadir=/home/apache</code>", la valeur
457       "<code>/home/apache/htdocs</code>" sera utilisée par défaut comme
458       racine des documents pour le conteneur suEXEC.</dd>
459
460       <dt><code>--with-suexec-uidmin=<em>UID</em></code></dt>
461
462       <dd>Cette option définit l'identifiant utilisateur le plus bas
463       avec lequel un utilisateur pourra être la cible de
464       suEXEC. 500 ou 100 sont des valeurs courantes sur la plupart des
465       systèmes. la valeur par défaut est 100.</dd>
466
467       <dt><code>--with-suexec-gidmin=<em>GID</em></code></dt>
468
469       <dd>Cette option définit l'identifiant de groupe le plus bas
470       avec lequel un utilisateur pourra être la cible de
471       suEXEC. 100 est une valeur courante sur la plupart des
472       systèmes et est par conséquent la valeur par défaut.</dd>
473
474       <dt><code>--with-suexec-logfile=<em>FILE</em></code></dt>
475
476       <dd>Cette option permet de définir le fichier dans lequel
477       toutes les transactions et erreurs de suEXEC seront journalisées
478       (à des fins d'analyse ou de débogage). Par défaut, le fichier
479       journal se nomme "<code>suexec_log</code>" et se trouve dans votre
480       répertoire standard des fichiers journaux défini par
481       <code>--logfiledir</code></dd>
482
483       <dt><code>--with-suexec-syslog</code></dt>
484
485       <dd>Avec cette option, suexec enregistrera les messages d'erreurs
486       et d'informations dans le journal syslog. Cette option doit être
487       utilisée conjointement avec l'option
488       <code>--without-suexec-logfile</code>.</dd>
489
490       <dt><code>--with-suexec-safepath=<em>PATH</em></code></dt>
491
492       <dd>Cette option permet de définir une variable d'environnement
493       PATH sûre à passer aux exécutables CGI. La valeur par défaut
494       est "<code>/usr/local/bin:/usr/bin:/bin</code>".</dd>
495     </dl>
496
497     <h3>Compilation et installation du conteneur suEXEC</h3>
498       
499
500     <p>Si vous avez activé la fonctionnalité suEXEC à l'aide de
501      l'option <code>--enable-suexec</code>, le binaire
502      <code>suexec</code> sera automatiquement construit (en même temps
503      que httpd) lorsque vous exécuterez la commande
504      <code>make</code>.</p>
505
506      <p>Lorsque tous les composants auront été construits, vous pourrez
507      exécuter la commande <code>make install</code> afin de les
508      installer. Le binaire <code>suexec</code> sera installé dans le
509      répertoire défini à l'aide de l'option <code>--sbindir</code>. La
510      localisation par défaut est "/usr/local/apache2/bin/suexec".</p>
511      <p>Veuillez noter que vous aurez besoin des
512      <strong><em>privilèges root</em></strong> pour passer l'étape de
513      l'installation. Pour que le conteneur puisse changer
514      l'identifiant utilisateur, il doit avoir comme propriétaire
515      <code><em>root</em></code>, et les droits du fichier doivent
516      inclure le bit d'exécution setuserid.</p>
517    
518
519    <h3>&gt;Mise en place de permissions pour
520     paranoïaque</h3>
521         
522     <p>Bien que le conteneur suEXEC vérifie que l'utilisateur qui
523     l'appelle correspond bien à l'utilisateur spécifié à l'aide de
524     l'option <code>--with-suexec-caller</code> du programme
525     <code class="program"><a href="./programs/configure.html">configure</a></code>, il subsiste toujours le risque qu'un
526     appel système ou une bibliothèque fasse appel à suEXEC avant que
527     cette vérification ne soit exploitable sur votre système. Pour
528     tenir compte de ceci, et parce que c'est en général la meilleure
529     pratique, vous devez utiliser les permissions du système de
530     fichiers afin de vous assurer que seul le groupe sous lequel
531     s'exécute httpd puisse faire appel à suEXEC.</p>
532
533     <p>Si, par exemple, votre serveur web est configuré pour
534     s'exécuter en tant que :</p>
535
536 <pre class="prettyprint lang-config">User www
537 Group webgroup</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 2015 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/quickreference.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>