mirror of
https://github.com/apache/httpd.git
synced 2025-08-10 02:56:11 +00:00

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1820055 13f79535-47bb-0310-9956-ffa450edef68
716 lines
33 KiB
Plaintext
716 lines
33 KiB
Plaintext
<?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="<-" alt="<-" src="./images/left.gif" /></a></div>
|
||
<div id="path">
|
||
<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.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"> en </a> |
|
||
<a href="./fr/suexec.html" title="Fran<61>ais"> fr </a> |
|
||
<a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="T<>rk<72>e"> tr </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>>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"><VirtualHost></a></code>. Si cette
|
||
directive est absente de la section <code class="directive"><a href="./mod/core.html#virtualhost"><VirtualHost></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"> en </a> |
|
||
<a href="./fr/suexec.html" title="Fran<61>ais"> fr </a> |
|
||
<a href="./ja/suexec.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
|
||
<a href="./ko/suexec.html" hreflang="ko" rel="alternate" title="Korean"> ko </a> |
|
||
<a href="./tr/suexec.html" hreflang="tr" rel="alternate" title="T<>rk<72>e"> tr </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&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> |