VirtualHost & Suexec/mod_userdir

Questions sur la configuration d'Apache, httpd.conf, et les différents modules.

Modérateur : Modérateurs

Avatar de l’utilisateur
exolium
Membre
Membre
Messages : 22
Inscription : ven. 24 mars 2006, 9:45

Messagepar exolium » ven. 24 mars 2006, 10:04

Bonjour a tous.

Je suite en train de paramêtré apache avec system de virtual host de masse comme indiqué dans la doc a base du <a href='http://httpd.apache.org/docs/2.0/vhosts/mass.html#xtra-conf' target='_blank'>mod_rewrite</a> et ca marche.

Mon soucis est que je voudrais qu'apache utilise les droits de l'utilisateur courant dans le répertoire /home.
par exemple user1 a le répertoire /home/user1

Faut-il utilisé suexec ou mod_userdir ?
Et surtout comment ?

Merci pour votre aide.
Fred at exolium.net<br><br>Ma config<br>Serveur <a href='http://www.debian.org' target='_blank'>Debian Sarge</a> avec <a href='http://httpd.apache.org' target='_blank'>Apache/2.0.54</a> (<a href='http://www.debian.org' target='_blank'>Debian GNU/Linux</a>) mod_jk2/2.0.4 <a href='http://www.php.net' target='_blank'>PHP/5.1.4</a>-1.<a href='http://www.dotdeb.org' target='_blank'>dotdeb</a>.2 proxy_html/2.4 mod_ssl/2.0.54 <a href='http://www.openssl.org' target='_blank'>OpenSSL</a>/0.9.7e <a href='http://www.mysql.com' target='_blank'>MySQL/5.0.18</a>

Avatar de l’utilisateur
exolium
Membre
Membre
Messages : 22
Inscription : ven. 24 mars 2006, 9:45

Messagepar exolium » ven. 14 avr. 2006, 1:14

Je relance ma question a tout hasard si quelqu'un sait comment faire...
Ca fait un petit moment que je cherche et ne trouve rien.

Voila le code de mon vhost

Code : Tout sélectionner

NameVirtualHost *:80

<VirtualHost *:80>

ServerName exemple.com
ServerAlias *.exemple.com

ServerAdmin webmaster@exemple.com

CustomLog /var/log/apache2/access-vhost-exemple.log combined
ErrorLog /var/log/apache2/error-vhost-exemple.log
LogLevel warn

ServerSignature On

#ChrootDir /home/exemple
DocumentRoot /home/exemple
ServerPath /home/exemple
UserDir /home/exemple

SuexecUserGroup exemple exemple

UserDir disabled
UserDir enabled exemple

php_value include_path ".:/usr/share/pear:/usr/local/lib/php"

#<IfModule mod_rewrite.c>
RewriteEngine on

RewriteMap lowercase int:tolower

# define the map file
RewriteMap vhost txt:/etc/apache2/vhost.map

# deal with aliases as above
RewriteCond %{REQUEST_URI} !^/icons/
RewriteCond %{REQUEST_URI} !^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
# this does the file-based remap
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/$1

RewriteCond %{REQUEST_URI} ^/cgi-bin/
RewriteCond ${lowercase:%{SERVER_NAME}} ^(.+)$
RewriteCond ${vhost:%1} ^(/.*)$
RewriteRule ^/(.*)$ %1/cgi-bin/$1 [T=application/x-httpd-cgi]
#</IfModule>

 <Directory /home/exemple>
 # ExecCGI is needed here because we can't force
 # CGI execution in the way that ScriptAlias does
 Options FollowSymLinks ExecCGI
 AllowOverride ALL
 </Directory>
</VirtualHost>

Fred at exolium.net<br><br>Ma config<br>Serveur <a href='http://www.debian.org' target='_blank'>Debian Sarge</a> avec <a href='http://httpd.apache.org' target='_blank'>Apache/2.0.54</a> (<a href='http://www.debian.org' target='_blank'>Debian GNU/Linux</a>) mod_jk2/2.0.4 <a href='http://www.php.net' target='_blank'>PHP/5.1.4</a>-1.<a href='http://www.dotdeb.org' target='_blank'>dotdeb</a>.2 proxy_html/2.4 mod_ssl/2.0.54 <a href='http://www.openssl.org' target='_blank'>OpenSSL</a>/0.9.7e <a href='http://www.mysql.com' target='_blank'>MySQL/5.0.18</a>

Avatar de l’utilisateur
totoprout
Nouveau membre
Messages : 6
Inscription : ven. 29 avr. 2005, 19:43

Messagepar totoprout » ven. 14 avr. 2006, 10:11

Je suis en train de chercher la même chose que toi ;-)

Dans mon cas j'utilise Plesk pour gérer la config' d'Apache.
Mon problème est qu'il y a un certain nombre de virtual host sur la machine, chacun géré par des users différents. Le problème est qu'Apache tourne avec le user 'apache', et que tous les fichiers qu'il créer ont pour owner/group 'apache' (d'un autre coté, ça aurait 'toto', je me poserais des questions :D).

C'est ce genre de script qui pose pb :

Code : Tout sélectionner

<?php
  mkdir ("/chemin/de/mon/dossier", 0700);
?>


Comment configurer Apache, pour changer les users/groups de création de fichier ?

Merci de votre coup de main .. pendant ce temps, je cherche :P
<i>Mais quelle idée d'utiliser Windows pour un serveur Web !!!</i><br>--> use a unix like web server, please ...

Avatar de l’utilisateur
exolium
Membre
Membre
Messages : 22
Inscription : ven. 24 mars 2006, 9:45

Messagepar exolium » ven. 14 avr. 2006, 10:55

Je sais qu'on peut le faire avec suphp mais dès que je l'active c'est php4 qui se remet en place et pas php5. J'ai les deux sur mon serveur
Fred at exolium.net<br><br>Ma config<br>Serveur <a href='http://www.debian.org' target='_blank'>Debian Sarge</a> avec <a href='http://httpd.apache.org' target='_blank'>Apache/2.0.54</a> (<a href='http://www.debian.org' target='_blank'>Debian GNU/Linux</a>) mod_jk2/2.0.4 <a href='http://www.php.net' target='_blank'>PHP/5.1.4</a>-1.<a href='http://www.dotdeb.org' target='_blank'>dotdeb</a>.2 proxy_html/2.4 mod_ssl/2.0.54 <a href='http://www.openssl.org' target='_blank'>OpenSSL</a>/0.9.7e <a href='http://www.mysql.com' target='_blank'>MySQL/5.0.18</a>

Avatar de l’utilisateur
totoprout
Nouveau membre
Messages : 6
Inscription : ven. 29 avr. 2005, 19:43

Messagepar totoprout » ven. 14 avr. 2006, 13:54

Tu as essayé suEXEC ?
Il semblerait que ce soit la solution.

<a href='http://httpd.apache.org/docs/2.2/suexec.html' target='_blank'>http://httpd.apache.org/docs/2.2/suexec.html</a> (en)
<a href='http://www.illiweb.com/manuel/Apache_1.3_VF/suexec.html' target='_blank'>http://www.illiweb.com/manuel/Apache_1.3_VF/suexec.html</a> (fr)

<!--QuoteBegin-"cgsecurity.org"+--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE ("cgsecurity.org")</td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->Users et users

Le serveur web est lancé par l'utilisateur root ce qui lui permet d'utiliser le port privilégié 80, ensuite il prend l'identité d'un utilisateur sans pouvoir apache ou nobody.

User apache
Group apache

suexec

Le problème est que les scripts s'exécutent tous avec le même id (i.e. le même propriétaire). En conséquence, ils peuvent interférer entre eux. Le programme suexec permet d'utiliser des User/Group différents pour chaque virtual host de façon à séparer les utilisateurs. En contrepartie, un pirate disposant du compte apache est capable d'utiliser ce programme pour corrompre d'autres comptes, c'est pour cela qu'il n'est pas actif par défaut. Il faut lire très attentivement la documentation.

Il est déjà compilé sur une RedHat mais pas forcément activé, il suffit alors d'un chmod u+s /usr/sbin/suexec pour le rendre actif.

ls -l /usr/sbin/suexec
-r-s--x---    1 root    apache      10976 Mar 29 19:52 /usr/sbin/suexec

# httpd -l
Compiled-in modules:
  http_core.c
  mod_so.c
suexec: enabled; valid wrapper /usr/sbin/suexec

Source : <a href='http://www.cgsecurity.org/Articles/apache.html' target='_blank'>http://www.cgsecurity.org/Articles/apache.html</a>
[/quote]
<i>Mais quelle idée d'utiliser Windows pour un serveur Web !!!</i><br>--> use a unix like web server, please ...

Avatar de l’utilisateur
totoprout
Nouveau membre
Messages : 6
Inscription : ven. 29 avr. 2005, 19:43

Messagepar totoprout » ven. 14 avr. 2006, 14:09

Et j'ajouterais une petite doc sur mod_suexec: <a href='http://httpd.apache.org/docs/2.2/mod/mod_suexec.html' target='_blank'>http://httpd.apache.org/docs/2.2/mod/mod_suexec.html</a>
<i>Mais quelle idée d'utiliser Windows pour un serveur Web !!!</i><br>--> use a unix like web server, please ...

Avatar de l’utilisateur
totoprout
Nouveau membre
Messages : 6
Inscription : ven. 29 avr. 2005, 19:43

Messagepar totoprout » ven. 14 avr. 2006, 14:18

Bon ... j'ai trouvé !!!

Il faut ajouter le modul : mod_suexec dans la config d'apache.
Puis ajouter une ligne dans la config des virtualHost :

SuexecUserGroup user group

Ce qui donne par exemple :

Code : Tout sélectionner

<VirtualHost 62.193.192.67:80>
ServerName absolvys.com:80
ServerAlias www.absolvys.com
UseCanonicalName Off

SuexecUserGroup admin-absolvys psacln

DocumentRoot /home/httpd/vhosts/absolvys.com/httpdocs
CustomLog /home/httpd/vhosts/absolvys.com/statistics/logs/access_log combined
ErrorLog /home/httpd/vhosts/absolvys.com/statistics/logs/error_log
<IfModule mod_userdir.c>
UserDir /home/httpd/vhosts/absolvys.com/web_users
.....
....
....
</VirtualHost>


Voila !
<i>Mais quelle idée d'utiliser Windows pour un serveur Web !!!</i><br>--> use a unix like web server, please ...

Avatar de l’utilisateur
exolium
Membre
Membre
Messages : 22
Inscription : ven. 24 mars 2006, 9:45

Messagepar exolium » lun. 19 juin 2006, 2:11

J'avais effectivement lu toutes ces doc, sauf <a href='http://www.cgsecurity.org' target='_blank'>http://www.cgsecurity.org</a>, mais tout ce qui est mis est pour apache 1.3 et ca ne marche pas sur mon apache 2.0

Je suis même partie d'un serveur propre, mais rien n'y fait, apache 2 php5 pas de suexec fonctionnel pas c'est toujours www-data qui exécute les scripts. :(

Je suis toujours preneur d'un solution qui fonctionne.
Fred at exolium.net<br><br>Ma config<br>Serveur <a href='http://www.debian.org' target='_blank'>Debian Sarge</a> avec <a href='http://httpd.apache.org' target='_blank'>Apache/2.0.54</a> (<a href='http://www.debian.org' target='_blank'>Debian GNU/Linux</a>) mod_jk2/2.0.4 <a href='http://www.php.net' target='_blank'>PHP/5.1.4</a>-1.<a href='http://www.dotdeb.org' target='_blank'>dotdeb</a>.2 proxy_html/2.4 mod_ssl/2.0.54 <a href='http://www.openssl.org' target='_blank'>OpenSSL</a>/0.9.7e <a href='http://www.mysql.com' target='_blank'>MySQL/5.0.18</a>

fatburner
Nouveau membre
Messages : 4
Inscription : mar. 02 oct. 2007, 1:04

Messagepar fatburner » mar. 02 oct. 2007, 1:11

Bonjour les gars...

Je vois que je ne suis pas le seul dans cette situation :?

Avez-vous trouvé la solution pour faire tourner SuExec avec apache 2, Php 5 et plesk...

Perso j'ai pris un dédié chez ovh et impossible d'uploader des fichiers ou des répertoires avec les bons groups et users !!

Exemple j'installe joomla (CMS) sans soucis...
Et si via un navigateur j'installe un composant de joomla... celui-ci va correctement s'installer...

Seul hic le composant s'installe avec group apache et user apache...

Donc impossible de supprimer ou modifier les rep ou fichier sans faire un chown -R !

Vraiment je rage :evil:

Si vous avez trouver la soluce, je suis preneur à 200 % :D

@+

Avatar de l’utilisateur
dexmon
Gourou
Gourou
Messages : 793
Inscription : sam. 18 juin 2005, 9:55
Localisation : /usr/local/apache
Contact :

Messagepar dexmon » mar. 02 oct. 2007, 8:01

En compilant apache2 avec le mod suexec et php ça marche.
Si on essai de faire ça avec apt-get on se casse les dents.
ImageUNIX foreverImage
Avant toute demande de support, vérifiez votre fichier error.log Apache.
----------------------------------------

fatburner
Nouveau membre
Messages : 4
Inscription : mar. 02 oct. 2007, 1:04

Messagepar fatburner » mar. 02 oct. 2007, 19:02

Salut Dexmon,

merci pour l'info...

Mais ce que je ne comprend pas, c'est un serveur dédié loué chez ovh.
La Fedora + plesk est une configuration proposée par ovh et tout devrait logiquement fonctionner.

SuExec est configuré en standard et est bien installé en module avec apache.

Ceci dit j'ai eu le même soucis avec un VDS chez 1and1 ! Grrr

@+


Revenir vers « Configuration »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités