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