Files
apache-http-server/docs/manual/suexec.html.fr
2018-01-04 10:58:20 +00:00

716 lines
33 KiB
Plaintext
Raw Blame History

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr"><head>
<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type" />
<!--
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
This file is generated from xml source: DO NOT EDIT
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-->
<title>Support suEXEC - Serveur Apache HTTP Version 2.5</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<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" />
<script src="./style/scripts/prettify.min.js" type="text/javascript">
</script>
<link href="./images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<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>
<p class="apache">Serveur Apache HTTP Version 2.5</p>
<img alt="" src="./images/feather.png" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
<div id="path">
<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>
<div class="toplang">
<p><span>Langues Disponibles: </span><a href="./en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/suexec.html" title="Fran<61>ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="T<>rk<72>e">&nbsp;tr&nbsp;</a></p>
</div>
<p>La fonctionnalit<69> <strong>suEXEC</strong> permet
l'ex<65>cution des programmes <strong>CGI</strong> et
<strong>SSI</strong> sous un utilisateur autre que celui sous
lequel s'ex<65>cute le serveur web qui appelle ces programmes.
Normalement, lorsqu'un programme CGI ou SSI est lanc<6E>, il
s'ex<65>cute sous le m<>me utilisateur que celui du serveur web qui
l'appelle.</p>
<p>Utilis<69>e de mani<6E>re appropri<72>e, cette fonctionnalit<69> peut
r<>duire consid<69>rablement les risques de s<>curit<69> encourus
lorsqu'on autorise les utilisateurs <20> d<>velopper et faire
s'ex<65>cuter des programmes CGI ou SSI de leur cru. Cependant, mal
configur<75>, suEXEC peut causer de nombreux probl<62>mes et m<>me cr<63>er
de nouvelles failles dans la s<>curit<69> de votre ordinateur. Si
vous n'<27>tes pas familier avec la gestion des programmes
<em>setuid root</em> et les risques de s<>curit<69> qu'ils comportent,
nous vous recommandons vivement de ne pas tenter
d'utiliser suEXEC.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#before">Avant de commencer</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#model">Mod<6F>le de s<>curit<69> de suEXEC</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#install">Configurer et installer suEXEC</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#enable">Activation et d<>sactivation
de suEXEC</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#usage">Utilisation de suEXEC</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#debug">D<>bogage de suEXEC</a></li>
<li><img alt="" src="./images/down.gif" /> <a href="#jabberwock">Avis <20> la population !
Avertissements et exemples</a></li>
</ul><h3>Voir aussi</h3><ul class="seealso"><li><a href="#comments_section">Commentaires</a></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="before" id="before">Avant de commencer</a></h2>
<p>Avant de foncer t<>te baiss<73>e dans la lecture de ce document,
vous devez tenir compte de certaines hypoth<74>ses concernant vous-m<>me
et l'environnement dans lequel vous allez utiliser suexec.</p>
<p>Premi<6D>rement, vous devez utiliser un syst<73>me d'exploitation
UNIX ou d<>riv<69>, capable d'effectuer des op<6F>rations
<strong>setuid</strong> et <strong>setgid</strong>. Tous les
exemples de commande sont donn<6E>s en cons<6E>quence. D'autres
plates-formes, m<>me si elles supportent suEXEC, peuvent
avoir une configuration diff<66>rente.</p>
<p>Deuxi<78>mement, vous devez <20>tre familier avec les concepts de base
relatifs <20> la s<>curit<69> de votre ordinateur et son administration.
Ceci implique la compr<70>hension des op<6F>rations
<strong>setuid/setgid</strong> et des diff<66>rents effets qu'elles
peuvent produire sur votre syst<73>me et son niveau de s<>curit<69>.</p>
<p>Troisi<73>mement, vous devez utiliser une version
<strong>non modifi<66>e</strong> du code de suEXEC. L'ensemble du
code de suEXEC a <20>t<EFBFBD> scrut<75> et test<73> avec soin par les d<>veloppeurs
et de nombreux b<>ta testeurs. Toutes les pr<70>cautions ont <20>t<EFBFBD> prises
pour s'assurer d'une base s<>re de code non seulement simple, mais
aussi solide. La modification de ce code peut causer des probl<62>mes
inattendus et de nouveaux risques de s<>curit<69>. Il est
<strong>vivement</strong> recommand<6E> de ne pas modifier le code de
suEXEC, <20> moins que vous ne soyez un programmeur sp<73>cialiste des
particularit<69>s li<6C>es <20> la s<>curit<69>, et souhaitez partager votre
travail avec l'<27>quipe de d<>veloppement du serveur HTTP Apache afin
de pouvoir en discuter.</p>
<p>Quatri<72>mement et derni<6E>rement, l'<27>quipe de d<>veloppement du
serveur HTTP Apache a d<>cid<69> de ne
<strong>PAS</strong> inclure suEXEC dans l'installation par d<>faut
d'Apache httpd. Pour pouvoir mettre en oeuvre suEXEC, l'administrateur
doit porter la plus grande attention aux d<>tails. Apr<70>s avoir bien
r<>fl<66>chi aux diff<66>rents points de la configuration de suEXEC,
l'administrateur peut l'installer selon les m<>thodes classiques.
Les valeurs des param<61>tres de configuration doivent <20>tre
d<>termin<69>es et sp<73>cifi<66>es avec soin par l'administrateur, afin de
maintenir la s<>curit<69> du syst<73>me de mani<6E>re appropri<72>e lors de
l'utilisation de la fonctionnalit<69> suEXEC. C'est par le biais de
ce processus minutieux que nous esp<73>rons r<>server
l'installation de suEXEC aux administrateurs prudents et
suffisamment d<>termin<69>s <20> vouloir l'utiliser.</p>
<p>Vous <20>tes encore avec nous ? Oui ? Bien.
Alors nous pouvons continuer !</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="model" id="model">Mod<6F>le de s<>curit<69> de suEXEC</a></h2>
<p>Avant d'installer et configurer suEXEC, nous allons tout d'abord
d<>crire le mod<6F>le de s<>curit<69> que vous <20>tes sur le point
d'impl<70>menter. Vous devriez ainsi mieux comprendre ce qui se passe
vraiment <20> l'int<6E>rieur de suEXEC et quelles pr<70>cautions ont <20>t<EFBFBD>
prises pour pr<70>server la s<>curit<69> de votre syst<73>me.</p>
<p><strong>suEXEC</strong> est bas<61> sur un programme "conteneur"
(wrapper) setuid qui est appel<65> par le serveur HTTP Apache principal.
Ce conteneur est appel<65> quand une requ<71>te HTTP concerne
un programme CGI ou SSI que l'administrateur
a d<>cid<69> de faire s'ex<65>cuter
sous un utilisateur autre que celui du serveur principal.
Lorsqu'il re<72>oit une telle requ<71>te, Apache httpd fournit au conteneur
suEXEC le nom du programme, ainsi que les identifiants utilisateur
et groupe sous lesquels le programme doit s'ex<65>cuter.</p>
<p>Le conteneur effectue ensuite les v<>rifications suivantes afin
de d<>terminer la r<>ussite ou l'<27>chec du processus -- si une seule
de ces conditions n'est pas v<>rifi<66>e, le programme journalise
l'erreur et se termine en retournant un code d'erreur, sinon il
continue :</p>
<ol>
<li>
<strong>L'utilisateur qui ex<65>cute le conteneur est-il un
utilisateur valide de ce syst<73>me ?</strong>
<p class="indent">
Ceci permet de s'assurer que l'utilisateur qui ex<65>cute le
conteneur est vraiment un utilisateur appartenant au syst<73>me.
</p>
</li>
<li>
<strong>Le conteneur a-t-il <20>t<EFBFBD> appel<65> avec un nombre
d'arguments correct ?</strong>
<p class="indent">
Le conteneur ne s'ex<65>cutera que si on lui fournit un nombre
d'arguments correct. Le serveur HTTP apache sait quel est le
bon format des arguments. Si le conteneur ne re<72>oit pas un
nombre d'arguments correct, soit il a <20>t<EFBFBD> modifi<66>,
soit quelque chose ne va pas dans la portion suEXEC de
votre binaire Apache httpd.
</p>
</li>
<li>
<strong>Cet utilisateur valide est-il autoris<69> <20> ex<65>cuter le
conteneur ?</strong>
<p class="indent">
Cet utilisateur est-il celui autoris<69> <20> ex<65>cuter le
conteneur ? Un seul utilisateur (celui d'Apache) est
autoris<69> <20> ex<65>cuter ce programme.
</p>
</li>
<li>
<strong>Le chemin du programme CGI ou SSI cible est-il
non s<>r ?</strong>
<p class="indent">
Le chemin du programme CGI ou SSI cible d<>bute-t-il par un
'/' ou contient-il une r<>f<EFBFBD>rence arri<72>re '..' ? Ceci est
interdit ; le programme CGI ou SSI cible doit se trouver dans
la hi<68>rarchie de la racine des documents de suEXEC (voir
<code>--with-suexec-docroot=<em>DIR</em></code> ci-dessous).
</p>
</li>
<li>
<strong>Le nom utilisateur cible est-il valide ?</strong>
<p class="indent">
L'utilisateur cible existe-t-il ?
</p>
</li>
<li>
<strong>Le nom du groupe cible est-il valide ?</strong>
<p class="indent">
Le groupe cible existe-t-il ?
</p>
</li>
<li>
<strong>L'utilisateur cible n'est-il <em>PAS</em>
superutilisateur ?</strong>
<p class="indent">
suEXEc ne permet pas <20>
<code><em>root</em></code> d'ex<65>cuter des programmes CGI/SSI.
</p>
</li>
<li>
<strong>Le num<75>ro de l'identifiant de l'utilisateur cible
est-il <em>SUPERIEUR</em> au num<75>ro d'identifiant
minimum ?</strong>
<p class="indent">
Le num<75>ro d'identifiant utilisateur minimum est d<>fini <20>
l'ex<65>cution du script configure. Ceci vous permet de d<>finir
le num<75>ro d'identifiant utilisateur le plus bas qui sera
autoris<69> <20> <20>x<EFBFBD>cuter des programmes CGI/SSI. En particulier,
cela permet d'<27>carter les comptes syst<73>me.
</p>
</li>
<li>
<strong>Le groupe cible n'est-il <em>PAS</em> le groupe
superutilisateur ?</strong>
<p class="indent">
Actuellement, suEXEC ne permet pas au groupe
<code><em>root</em></code> d'ex<65>cuter des programmes CGI/SSI.
</p>
</li>
<li>
<strong> Le num<75>ro d'identifiant du groupe cible est-il
<em>SUPERIEUR</em> au num<75>ro d'identifiant minimum ?</strong>
<p class="indent">
Le num<75>ro d'identifiant de groupe minimum est sp<73>cifi<66> lors
de l'ex<65>cution du script configure. Ceci vous permet de
d<>finir l'identifiant de groupe le plus bas possible qui sera
autoris<69> <20> ex<65>cuter des programmes CGI/SSI, et est
particuli<6C>rement utile pour <20>carter les groupes "syst<73>me".
</p>
</li>
<li>
<strong>Le conteneur peut-il obtenir avec succ<63>s l'identit<69>
des utilisateur et groupe cibles ?</strong>
<p class="indent">
C'est ici que le programme obtient l'identit<69> des utilisateur
et groupe cibles via des appels <20> setuid et setgid. De m<>me,
la liste des acc<63>s groupe est initialis<69>e avec tous les
groupes auxquels l'utilisateur cible appartient.
</p>
</li>
<li>
<strong>Peut-on se positionner dans le r<>pertoire dans dequel
sont situ<74>s les programmes CGI/SSI ?</strong>
<p class="indent">
S'il n'existe pas, il ne peut pas contenir de fichier. Et si
l'on ne peut pas s'y positionner, il n'existe probablement
pas.
</p>
</li>
<li>
<strong>Le r<>pertoire est-il dans l'espace web
de httpd ?</strong>
<p class="indent">
Si la requ<71>te concerne une portion de la racine du serveur,
le r<>pertoire demand<6E> est-il dans la hi<68>rarchie de la racine
des documents de suEXEC ? Si la requ<71>te concerne un
<code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>, le r<>pertoire demand<6E> est-il dans
la hi<68>rarchie du r<>pertoire d<>fini comme le r<>pertoire
utilisateur de suEXEC (voir les
<a href="#install">options de configuration de suEXEC</a>) ?
</p>
</li>
<li>
<strong>L'<27>criture dans le r<>pertoire est-elle interdite pour
un utilisateur autre que le propri<72>taire </strong>
<p class="indent">
Le r<>pertoire ne doit pas <20>tre ouvert aux autres
utilisateurs ; seul l'utilisateur propri<72>taire doit pouvoir
modifier le contenu du r<>pertoire.
</p>
</li>
<li>
<strong>Le programme CGI/SSI cible existe-t-il ?</strong>
<p class="indent">
S'il n'existe pas, il ne peut pas <20>tre ex<65>cut<75>.
</p>
</li>
<li>
<strong>Les utilisateurs autres que le propri<72>taire n'ont-ils
<em>PAS</em> de droits en <20>criture sur le programme
CGI/SSI ?</strong>
<p class="indent">
Les utilisateurs autres que le propri<72>taire ne doivent pas
pouvoir modifier le programme CGI/SSI.
</p>
</li>
<li>
<strong>Le programme CGI/SSI n'est-il <em>PAS</em> setuid ou
setgid ?</strong>
<p class="indent">
Les programmes cibles ne doivent pas pouvoir modifier <20>
nouveau les identifiants utilisateur/groupe.
</p>
</li>
<li>
<strong>Le couple utilisateur/groupe cible est-il le m<>me que
celui du programme ?</strong>
<p class="indent">
L'utilisateur est-il le propri<72>taire du fichier ?
</p>
</li>
<li>
<strong>Peut-on nettoyer avec succ<63>s l'environnement des
processus afin de garantir la s<>ret<65> des op<6F>rations ?</strong>
<p class="indent">
suExec nettoie l'environnement des processus en <20>tablissant
un chemin d'ex<65>cution s<>r (d<>fini lors de la configuration),
et en ne passant que les variables dont les noms font partie
de la liste de l'environnement s<>r (cr<63><72>e de m<>me lors de la
configuration).
</p>
</li>
<li>
<strong>Le conteneur peut-il avec succ<63>s se substituer au
programme CGI/SSI cible et s'ex<65>cuter ?</strong>
<p class="indent">
C'est l<> o<> l'ex<65>cution de suEXEC s'arr<72>te et o<> commence
celle du programme CGI/ssi cible.
</p>
</li>
</ol>
<p>Ce sont les op<6F>rations standards effectu<74>es par le mod<6F>le de
s<>curit<69> du conteneur suEXEC. Il peut para<72>tre strict et est
susceptible d'imposer de nouvelles limitations et orientations
dans la conception des programmes CGI/SSI, mais il a <20>t<EFBFBD> d<>velopp<70>
avec le plus grand soin, <20>tape par <20>tape, en se focalisant sur
la s<>curit<69>.</p>
<p>Pour plus d'informations sur la mesure dans laquelle ce mod<6F>le
de s<>curit<69> peut limiter vos possibilit<69>s au regard de la
configuration du serveur, ainsi que les risques de s<>curit<69> qui
peuvent <20>tre <20>vit<69>s gr<67>ce <20> une configuration appropri<72>e de suEXEC,
se r<>f<EFBFBD>rer <20> la section <a href="#jabberwock">"Avis <20> la population !"</a> de ce document.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="install" id="install">Configurer et installer suEXEC</a></h2>
<p>C'est ici que nous entrons dans le vif du sujet.</p>
<p><strong>Options de configuration de suEXEC</strong><br />
</p>
<dl>
<dt><code>--enable-suexec</code></dt>
<dd>Cette option active la fonctionnalit<69> suEXEC qui n'est
jamais install<6C>e ou activ<69>e par d<>faut. Au moins une option
<code>--with-suexec-xxxxx</code> doit accompagner l'option
<code>--enable-suexec</code> pour qu'APACI (l'utilitaire de
configuration de la compilation d'Apache) accepte votre demande
d'utilisation de la fonctionnalit<69> suEXEC.</dd>
<dt><code>--enable-suexec-capabilities</code></dt>
<dd><strong>Sp<53>cifique <20> Linux :</strong> Normalement, le binaire
<code>suexec</code> est install<6C> en mode "setuid/setgid root", ce
qui lui permet de s'ex<65>cuter avec la totalit<69> des privil<69>ges de
l'utilisateur root. Avec cette option, le binaire
<code>suexec</code> sera install<6C> avec seulement les bits
setuid/setgid "capability" d<>finis, ce qui constitue un
sous-ensemble des privil<69>ges de root pour les op<6F>rations de
suexec. Notez que dans ce mode, le binaire <code>suexec</code> ne
sera pas en mesure d'<27>crire dans un fichier journal ; il est donc
recommand<6E> dans ce mode d'utiliser les options
<code>--with-suexec-syslog --without-suexec-logfile</code>, afin
d'utiliser la jounalisation syslog.</dd>
<dt><code>--with-suexec-bin=<em>PATH</em></code></dt>
<dd>Le chemin du binaire <code>suexec</code> doit <20>tre cod<6F> en
dur dans le serveur pour des raisons de s<>curit<69>. Cette option
vous permet de modifier le chemin par d<>faut.
<em>Par exemple</em>
<code>--with-suexec-bin=/usr/sbin/suexec</code></dd>
<dt><code>--with-suexec-caller=<em>UID</em></code></dt>
<dd>L'<a href="mod/mpm_common.html#user">utilisateur</a> sous
lequel httpd s'ex<65>cute habituellement. C'est le seul utilisateur
autoris<69> <20> ex<65>cuter le wrapper suEXEC.</dd>
<dt><code>--with-suexec-userdir=<em>DIR</em></code></dt>
<dd>Cette option d<>finit le sous-r<>pertoire de la hi<68>rarchie des
r<>pertoires utilisateurs dans lequel l'utilisation
de suEXEC sera autoris<69>e. Tous les ex<65>cutables situ<74>s dans ce
r<>pertoire seront ex<65>cutables par suEXEC sous l'utilisateur
cible ; ces programmes doivent donc <20>tre s<>rs. Si vous utilisez
une directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>
"simple" (c'est <20> dire ne contenant pas de
"*"), l'option --with-suexec-userdir
devra contenir la m<>me valeur. SuEXEC ne fonctionnera pas
correctement si la directive <code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> contient une valeur
diff<66>rente du r<>pertoire home de l'utilisateur tel qu'il est
d<>fini dans le fichier <code>passwd</code>. la valeur par d<>faut
est "<code>public_html</code>".<br />
Si vous avez plusieurs h<>tes virtuels avec une directive
<code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code> diff<66>rente
pour chacun d'entre eux, vous devrez faire en sorte que chaque
UserDir poss<73>de un r<>pertoire parent commun ; donnez alors <20>
l'option --with-suexec-userdir le nom
de ce r<>pertoire commun. <strong>Si tout ceci n'est pas d<>fini
correctement, les requ<71>tes CGI "~userdir" ne fonctionneront
pas !</strong></dd>
<dt><code>--with-suexec-docroot=<em>DIR</em></code></dt>
<dd>Cette option fonctionne comme la directive DocumentRoot pour
httpd. Il s'agit de la seule hi<68>rarchie (en dehors des directives
<code class="directive"><a href="./mod/mod_userdir.html#userdir">UserDir</a></code>) dans laquelle la fonctionnalit<69> suEXEC
pourra <20>tre utilis<69>e. La valeur par d<>faut est la valeur de
<code>--datadir</code> accompagn<67>e du suffixe
"<code>/htdocs</code>" ;
<em>Par exemple</em>, si vous ex<65>cutez configure avec
"<code>--datadir=/home/apache</code>", la valeur
"<code>/home/apache/htdocs</code>" sera utilis<69>e par d<>faut comme
racine des documents pour le conteneur suEXEC.</dd>
<dt><code>--with-suexec-uidmin=<em>UID</em></code></dt>
<dd>Cette option d<>finit l'identifiant utilisateur le plus bas
avec lequel un utilisateur pourra <20>tre la cible de
suEXEC. 500 ou 100 sont des valeurs courantes sur la plupart des
syst<73>mes. la valeur par d<>faut est 100.</dd>
<dt><code>--with-suexec-gidmin=<em>GID</em></code></dt>
<dd>Cette option d<>finit l'identifiant de groupe le plus bas
avec lequel un utilisateur pourra <20>tre la cible de
suEXEC. 100 est une valeur courante sur la plupart des
syst<73>mes et est par cons<6E>quent la valeur par d<>faut.</dd>
<dt><code>--with-suexec-logfile=<em>FILE</em></code></dt>
<dd>Cette option permet de d<>finir le fichier dans lequel
toutes les transactions et erreurs de suEXEC seront journalis<69>es
(<28> des fins d'analyse ou de d<>bogage). Par d<>faut, le fichier
journal se nomme "<code>suexec_log</code>" et se trouve dans votre
r<>pertoire standard des fichiers journaux d<>fini par
<code>--logfiledir</code></dd>
<dt><code>--with-suexec-syslog</code></dt>
<dd>Avec cette option, suexec enregistrera les messages d'erreurs
et d'informations dans le journal syslog. Cette option doit <20>tre
utilis<69>e conjointement avec l'option
<code>--without-suexec-logfile</code>.</dd>
<dt><code>--with-suexec-safepath=<em>PATH</em></code></dt>
<dd>Cette option permet de d<>finir une variable d'environnement
PATH s<>re <20> passer aux ex<65>cutables CGI. La valeur par d<>faut
est "<code>/usr/local/bin:/usr/bin:/bin</code>".</dd>
</dl>
<h3>Compilation et installation du conteneur suEXEC</h3>
<p>Si vous avez activ<69> la fonctionnalit<69> suEXEC <20> l'aide de
l'option <code>--enable-suexec</code>, le binaire
<code>suexec</code> sera automatiquement construit (en m<>me temps
que httpd) lorsque vous ex<65>cuterez la commande
<code>make</code>.</p>
<p>Lorsque tous les composants auront <20>t<EFBFBD> construits, vous pourrez
ex<65>cuter la commande <code>make install</code> afin de les
installer. Le binaire <code>suexec</code> sera install<6C> dans le
r<>pertoire d<>fini <20> l'aide de l'option <code>--sbindir</code>. La
localisation par d<>faut est "/usr/local/apache2/bin/suexec".</p>
<p>Veuillez noter que vous aurez besoin des
<strong><em>privil<69>ges root</em></strong> pour passer l'<27>tape de
l'installation. Pour que le conteneur puisse changer
l'identifiant utilisateur, il doit avoir comme propri<72>taire
<code><em>root</em></code>, et les droits du fichier doivent
inclure le bit d'ex<65>cution setuserid.</p>
<h3>&gt;Mise en place de permissions pour
parano<6E>aque</h3>
<p>Bien que le conteneur suEXEC v<>rifie que l'utilisateur qui
l'appelle correspond bien <20> l'utilisateur sp<73>cifi<66> <20> l'aide de
l'option <code>--with-suexec-caller</code> du programme
<code class="program"><a href="./programs/configure.html">configure</a></code>, il subsiste toujours le risque qu'un
appel syst<73>me ou une biblioth<74>que fasse appel <20> suEXEC avant que
cette v<>rification ne soit exploitable sur votre syst<73>me. Pour
tenir compte de ceci, et parce que c'est en g<>n<EFBFBD>ral la meilleure
pratique, vous devez utiliser les permissions du syst<73>me de
fichiers afin de vous assurer que seul le groupe sous lequel
s'ex<65>cute httpd puisse faire appel <20> suEXEC.</p>
<p>Si, par exemple, votre serveur web est configur<75> pour
s'ex<65>cuter en tant que :</p>
<pre class="prettyprint lang-config">User www
Group webgroup</pre>
<p>et <code class="program"><a href="./programs/suexec.html">suexec</a></code> se trouve <20>
"/usr/local/apache2/bin/suexec", vous devez ex<65>cuter les
commandes</p>
<div class="example"><p><code>
chgrp webgroup /usr/local/apache2/bin/suexec<br />
chmod 4750 /usr/local/apache2/bin/suexec<br />
</code></p></div>
<p>Ceci permet de s'assurer que seul le groupe sous lequel httpd
s'ex<65>cute (ici webgroup) puisse faire appel au conteneur
suEXEC.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="enable" id="enable">Activation et d<>sactivation
de suEXEC</a></h2>
<p>Au d<>marrage, httpd v<>rifie la pr<70>sence du fichier
<code class="program"><a href="./programs/suexec.html">suexec</a></code> dans le r<>pertoire d<>fini par
l'option <code>--sbindir</code> du script configure (le
r<>pertoire par d<>faut est "/usr/local/apache/sbin/suexec"). Si
httpd trouve un conteneur suEXEC correctement configur<75>, il
enregistrera le message suivant dans le journal des erreurs :</p>
<div class="example"><p><code>
[notice] suEXEC mechanism enabled (wrapper: <var>/path/to/suexec</var>)
</code></p></div>
<p>Si ce message n'est pas g<>n<EFBFBD>r<EFBFBD> au d<>marrage du serveur, ce
dernier ne trouve probablement pas le programme conteneur <20>
l'endroit o<> il est sens<6E> <20>tre, ou l'ex<65>cutable suexec n'est pas
install<6C> en <em>setuid root</em>.</p>
<p>Si le serveur HTTP Apache est d<>j<EFBFBD> en cours d'ex<65>cution, et si
vous activez le m<>canisme suEXEC pour la premi<6D>re fois, vous
devez arr<72>ter et red<65>marrer httpd. Un red<65>marrage
<20> l'aide d'un simple signal HUP ou USR1 suffira. </p>
<p>Pour d<>sactiver suEXEC, vous devez supprimer le fichier
<code class="program"><a href="./programs/suexec.html">suexec</a></code>, puis arr<72>ter et red<65>marrer
httpd.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="usage" id="usage">Utilisation de suEXEC</a></h2>
<p>Les requ<71>tes pour des programmes CGI ne feront appel au
conteneur suEXEC que si elles concernent un h<>te virtuel
contenant une directive <code class="directive"><a href="./mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code>, ou si elles sont
trait<69>es par <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code>.</p>
<p><strong>H<>tes virtuels :</strong><br /> Une des m<>thodes
d'utilisation du conteneur suEXEC consiste <20> ins<6E>rer une
directive <code class="directive"><a href="./mod/mod_suexec.html#suexecusergroup">SuexecUserGroup</a></code> dans une section
<code class="directive"><a href="./mod/core.html#virtualhost">VirtualHost</a></code>. En d<>finissant
des valeurs diff<66>rentes de celles du serveur principal, toutes les
requ<71>tes pour des ressources CGI seront ex<65>cut<75>es sous
les <em>User</em> et <em>Group</em> d<>finis pour cette section
<code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>. Si cette
directive est absente de la section <code class="directive"><a href="./mod/core.html#virtualhost">&lt;VirtualHost&gt;</a></code>, l'utilisateur du
serveur principal sera pris par d<>faut</p>
<p><strong>R<>pertoires des utilisateurs :</strong><br /> Avec
cette m<>thode, les
requ<71>tes trait<69>es par <code class="module"><a href="./mod/mod_userdir.html">mod_userdir</a></code> appelleront le
conteneur suEXEC pour ex<65>cuter le programme CGI sous l'identifiant
utilisateur du r<>pertoire utilisateur concern<72>. Seuls pr<70>requis
pour pouvoir acc<63>der <20> cette fonctionnalit<69> : l'ex<65>cution des CGI
doit <20>tre activ<69>e pour l'utilisateur concern<72>, et le script doit
passer avec succ<63>s le test des <a href="#model">v<>rifications de
s<>curit<69></a> d<>crit plus haut. Voir aussi l'
<a href="#install">option de compilation</a>
<code>--with-suexec-userdir</code>.</p> </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="debug" id="debug">D<>bogage de suEXEC</a></h2>
<p>Le conteneur suEXEC va <20>crire ses informations de journalisation
dans le fichier d<>fini par l'option de compilation
<code>--with-suexec-logfile</code> comme indiqu<71> plus haut,
ou vers syslog si l'option <code>--with-suexec-syslog</code> est
utilis<69>e. Si vous
pensez avoir configur<75> et install<6C> correctement le conteneur,
consultez ce journal, ainsi que le journal des erreurs du serveur
afin de d<>terminer l'endroit o<> vous avez fait fausse
route. Si vous utilisez une distribution binaire, la commande
<code>"suexec -V"</code> vous permet de d<>terminer quelles options
ont <20>t<EFBFBD> utilis<69>es pour compiler suexec.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
<div class="section">
<h2><a name="jabberwock" id="jabberwock">Avis <20> la population !
Avertissements et exemples</a></h2>
<p><strong>NOTE !</strong> Cette section est peut-<2D>tre incompl<70>te.
Pour en consulter la derni<6E>re r<>vision, voir la version de la <a href="http://httpd.apache.org/docs/trunk/suexec.html">Documentation en ligne</a>.</p>
<p>Quelques points importants du conteneur peuvent
imposer des contraintes du point de vue de la configuration du
serveur. Veuillez en prendre connaissance avant de soumettre un
rapport de bogue <20> propos de suEXEC.</p>
<ul>
<li><strong>Points importants de suEXEC</strong></li>
<li>
Limitations concernant la hi<68>rarchie.
<p class="indent">
Pour des raisons de s<>curit<69> et d'efficacit<69>, toutes les
requ<71>tes suEXEC ne doivent concerner que des ressources
situ<74>es dans la racine des documents d<>finie pour les
requ<71>tes concernant un h<>te virtuel, ou des ressources
situ<74>es dans la racine des documents d<>finies pour les
requ<71>tes concernant un r<>pertoire utilisateur. Par exemple,
si vous avez configur<75> quatre h<>tes virtuels, vous devrez
d<>finir la structure des racines de documents de vos h<>tes
virtuels en dehors d'une hi<68>rarchie de documents principale
de httpd, afin de tirer parti de suEXEC dans le contexte des
h<>tes virtuels (Exemple <20> venir).
</p>
</li>
<li>
La variable d'environnement PATH de suEXEC
<p class="indent">
Modifier cette variable peut s'av<61>rer dangereux. Assurez-vous
que tout chemin que vous ajoutez <20> cette variable est un
r<>pertoire <strong>de confiance</strong>. Vous n'avez
probablement pas l'intention d'ouvrir votre serveur de fa<66>on
<20> ce que l'on puisse y ex<65>cuter un cheval de Troie.
</p>
</li>
<li>
Modification de suEXEC
<p class="indent">
Encore une fois, ceci peut vous causer de
<strong>graves ennuis</strong> si vous vous y essayez sans
savoir ce que vous faites. Evitez de vous y risquer dans la
mesure du possible.
</p>
</li>
</ul>
</div></div>
<div class="bottomlang">
<p><span>Langues Disponibles: </span><a href="./en/suexec.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/suexec.html" title="Fran<61>ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="T<>rk<72>e">&nbsp;tr&nbsp;</a></p>
</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>
<script type="text/javascript"><!--//--><![CDATA[//><!--
var comments_shortname = 'httpd';
var comments_identifier = 'http://httpd.apache.org/docs/trunk/suexec.html';
(function(w, d) {
if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
d.write('<div id="comments_thread"><\/div>');
var s = d.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
}
else {
d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
}
})(window, document);
//--><!]]></script></div><div id="footer">
<p class="apache">Copyright 2018 The Apache Software Foundation.<br />Autoris<69> sous <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<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[//><!--
if (typeof(prettyPrint) !== 'undefined') {
prettyPrint();
}
//--><!]]></script>
</body></html>