Serveur Web · 2 min read · Jan 29, 2026

Exécution de Vhosts Sous UIDs/GIDs Séparés Avec Apache2 mpm-itk Sur Debian Etch

Exécution de Vhosts Sous UIDs/GIDs Séparés Avec Apache2 mpm-itk Sur Debian Etch

Version 1.0
Auteur : Falko Timme

Cet article explique comment vous pouvez installer et configurer apache2-mpm-itk sur un serveur Debian Etch. apache2-mpm-itk est un MPM (Module de Multi-Processus) pour le serveur web Apache 2. mpm-itk vous permet d’exécuter chacun de vos vhosts sous un UID et un GID séparés - en bref, les scripts et fichiers de configuration pour un vhost n’ont plus besoin d’être lisibles par tous les autres vhosts. mpm-itk fonctionne avec mod_php car mpm-itk est basé sur le MPM traditionnel prefork, ce qui signifie qu’il n’est pas multi-threadé. Cela signifie que vous n’avez plus besoin d’utiliser suExec ou suPHP pour exécuter les scripts PHP d’un site web en tant qu’utilisateur séparé.

Ce document est fourni sans garantie d’aucune sorte ! Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque Préliminaire

Je suppose que vous avez une installation Apache2 fonctionnelle avec mod_php sur votre serveur Debian Etch.

Pour des considérations de rapidité, jetez un œil à http://blog.stuartherbert.com/php/2008/04/19/using-mpm-itk-to-secure-a-shared-server/.

Pour des considérations de sécurité, veuillez visiter http://mpm-itk.sesse.net/.

2 Installation d’apache2-mpm-itk

apache2-mpm-itk est disponible en tant que paquet Debian pour Debian Etch, donc tout ce que nous avons à faire est d’exécuter

apt-get install apache2-mpm-itk

3 Configuration d’apache2-mpm-itk

apache2-mpm-itk est configuré sur une base par vhost, c’est-à-dire que nous n’avons pas à définir d’options globales, et il n’y a qu’une seule directive que nous devons définir dans un vhost, AssignUserId, qui prend deux paramètres, le nom d’utilisateur et le groupe sous lequel le vhost s’exécutera.

Dans cet exemple, j’utiliserai le vhost Apache par défaut de Debian (vous pouvez trouver sa configuration dans /etc/apache2/sites-available/default) avec le document root /var/www (si vous avez des vhosts différents, veuillez ajuster cela à votre situation), et je veux que ce vhost s’exécute en tant qu’utilisateur web1_admin et groupe web1.

Si l’utilisateur et le groupe n’existent pas déjà, nous pouvons les créer comme suit :

groupadd web1
useradd -s /bin/false -d /home/web1_admin -m -g web1 web1_admin

Ensuite, nous ouvrons notre configuration de vhost et ajoutons les lignes suivantes :

| [...] AssignUserId web1_admin web1 [...] |

Par exemple :

vi /etc/apache2/sites-available/default

| NameVirtualHost * ServerAdmin webmaster@localhost DocumentRoot /var/www/ Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Cette directive nous permet d'avoir la page de démarrage par défaut d'apache2 # dans /apache2-default/, mais d'avoir quand même / aller au bon endroit RedirectMatch ^/$ /apache2-default/ ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog /var/log/apache2/error.log # Les valeurs possibles incluent : debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined ServerSignature On Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride None Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 AssignUserId web1_admin web1 |

Redémarrez Apache ensuite :

/etc/init.d/apache2 restart    

C’est tout !

4 Liens

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.