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