[APACHE] problème avec les répertoires utilisateurs RESOLU

problème avec les répertoires utilisateurs RESOLU [APACHE] - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 06-05-2003 à 10:06:30    

Salut à tous,
 
j'ai un serveur web qui marche nickel, c'est une debian, avec apache php mysql... et proftpd pour le ftp.
 
Tout marche bien donc sauf les userdir.
 
voici ma config :  
 
afin de pouvoir ftp sur le répertoire web, apache ne tourne pas en tant que wwwdata mais en tant qu'un user normal possédant un bash, j'ai modifié le home directory de ce user (que nous appellerons machin:machin) en /var/www/ come ça qd je me logue avec le ftp je tombe sur le DocumentRoot d'apache.
 
 
Le blème donc c'est que j'essaie de faire fonctionner les répertoires utilisateurs pour que qd on tape http://www.mondomaine.com/~monuser/ on tombe sur sa page perso.
 
mais quand je fait ça j'ai l'erreur suivante : "vous n'êtes pas autorisé à afficher cette page."
 
comment faire marcher ça? Sachant que évidémment les home directory des users leur appartiennent et que les users appartienent au groupe users. Ils n'appartiennent donc évidemment pas à machin:machin et encore moins à wwwdata:wwwdata (au cas où j'aurais laisser le truc par défaut.)
 
 
comment kon fait?


Message édité par duch le 06-05-2003 à 16:41:12
Reply

Marsh Posté le 06-05-2003 à 10:06:30   

Reply

Marsh Posté le 06-05-2003 à 10:17:04    

en lisant la doc _incluse_ avec apache ? voir meme le httpd.conf qui est assez explicite ...
En gros au niveau de apache tu as deux niveaux de sécurité on dira .
pour qu'un fichier sur ton ordi soit lu il faut que
1)apache est _effectivement_ le droit de le lire ;)
2)que les regles du directory permettent de lire le fichier en question
exemple simple tiré du httpd.conf  


Userdir   public_html
<Directory /home/*/public_html>
    AllowOverride FileInfo AuthConfig Limit Indexes
    Options MultiViews Indexes SymLinksIfOwnerMatch +Includes
    <Limit GET POST OPTIONS PROPFIND>
        Order allow,deny
        Allow from all
    </Limit>
    <LimitExcept GET POST OPTIONS PROPFIND>
        Order deny,allow
        Deny from all
    </LimitExcept>
</Directory>


Reply

Marsh Posté le 06-05-2003 à 10:46:04    

Pfiou.... c'est dingue les trucs qu'on apprends :D
 
1) pour pouvoir accéder à un fichier il faut que apache est le droit de le lire? Sans dec :D
 
2) même avec un chmod -R 777, ça ne marche pô
 
voici la partie de mon httpd.conf concernant le mod_user :
 

Code :
  1. <IfModule mod_userdir.c>
  2.     UserDir public_html
  3. </IfModule>
  4. <Directory /home/*/public_html>
  5.     AllowOverride FileInfo AuthConfig Limit
  6.     Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
  7.     <Limit GET POST OPTIONS PROPFIND>
  8.         Order allow,deny
  9.         Allow from all
  10.     </Limit>
  11.     <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
  12.         Order deny,allow
  13.         Deny from all
  14.     </Limit>
  15. </Directory>


 
pas de grosse différence avec le tiens, non?
 
3) je sais lire merci.


Message édité par duch le 06-05-2003 à 10:47:41
Reply

Marsh Posté le 06-05-2003 à 11:04:38    

désolé de m'être emporté Mikala, j'ai cru que tu me prenais pour un teubé.
 
C'est bien évidemment un problème de user et de groupe, mais j'ai du mal à m'en dépétrer, donc ça m'irrite :D


Message édité par duch le 06-05-2003 à 11:17:03
Reply

Marsh Posté le 06-05-2003 à 11:22:19    

bon j'ai fait quelques modifs :
 
apache tourne maintenant en tant que machin:users
le répertoire /var/www (et ses sous répertoires) appartiennent à machin:users
 
les utilisateurs appartienent au groupe users, par exemple gregory appartient à gregory:users, son home dir aussi évidemment ainsi que tous les sous-répertoires.  
 
J'ai fait un chmod -R 775 sur mon répertoire public_html.
 
bien entendu le module mod_userdir est chargé :
LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so
 
 
mon site web marche toujours nickel
 
ET pourtant ça ne marche toujours pas !!!
 
Faut-il un autre module?


Message édité par duch le 06-05-2003 à 11:22:48
Reply

Marsh Posté le 06-05-2003 à 12:00:48    

Hum je pense pas que ce soit un probleme d'users dans le sens  ou tu parles ;)
exemple chez moi , httpd tourne sous nobody sans aucun groupe particulier
& j'ai  
 

drwxr--r-x   10 mikala   mikala       4096 2003-05-03 13:09 public_html


tiens vires les balises <IfModule > avant .
ensuite tu as quoi comme messages d'erreurs dans tes logs ?
 
 
--  
messsage subliminal PureFtpd c'est mieux :D
 

Reply

Marsh Posté le 06-05-2003 à 12:25:19    

dans les logs j'ai pô grand chose :
 
193.252.105.230 - - [06/May/2003:11:11:09 +0200] "GET /~gregory/index.html HTTP/1.1" 403 229 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"
 
 
erreur 403
 
rien dans error.log
 
j'ai virer la condition ifModule, apache a redémarré nickel, mais ça ne change rien. donc le module est bien chargé...


Message édité par duch le 06-05-2003 à 12:25:56
Reply

Marsh Posté le 06-05-2003 à 12:34:49    

tu n'aurais pas un autre Directory par la suite qui fout la merde ?
 
(j'ai une debian aussi sauf que j'ai compilé moi meme apache,php & mysql )
si tu veux voir mon fichier de conf


Message édité par mikala le 06-05-2003 à 12:35:21
Reply

Marsh Posté le 06-05-2003 à 12:42:20    

bah non, j'vois pô...
 
si tu veux y jeter un coup d'oeil, le miens est là : http://www.icilalune.fr/tmp/httpd.conf
 
le problème viens peut-être de mes Vhosts?


Message édité par duch le 06-05-2003 à 12:45:31
Reply

Marsh Posté le 06-05-2003 à 12:51:06    

hum
 

<Directory /var/www/*/web>
    Options Indexes Includes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>

 
pk tu mets cela ?
la je sais pas trop l'interet ~.~
si c'est pour les vhosts il vaut mieux a mon avis les définir dans le vhost.conf

Reply

Marsh Posté le 06-05-2003 à 12:51:06   

Reply

Marsh Posté le 06-05-2003 à 12:53:33    

c'est effectivement pour les Vhosts
 
en fait en théorie je devrais mettre /var/www/home/web pour coller au documentRoot général, mais comme les Vhosts sont stockés dans des répertoires ayant le même schéma (sauf qu'à la place de home, c'est site1, site2...) je me suis dit que c'était plus simple et plus lisible, ça évite de surcharger le fichier Vhosts.conf avec n fois la même chose...
 
non?


Message édité par duch le 06-05-2003 à 12:54:17
Reply

Marsh Posté le 06-05-2003 à 13:05:25    

dans ce cas il y a justement des choses dédiés pour ce faire ( si tu en as bcp de vhosts) .
mod_vhost par exemple (je m'en servais par le passé :D )
sinon tu peux te servir de  mod_rewrite mais il est un peu plus chaud ~.~
sinon tu as testé juste pour voir sans le /var/www/*/web ? ( si le ~user passe )

Reply

Marsh Posté le 06-05-2003 à 13:10:31    

j'comprends pas???
 
j'utilise les directives standard pour les Vhosts, voici d'ailleurs un extrait de mon fichier :
 
http://www.icilalune.fr/tmp/Vhosts.conf
 
pourquoi veux-tu que je m'em***de avec mod_vhosts ou pire mod_rewrite?
 
je vais tester en mettant /var/www/home/web pour voir si ça passe, car j'en ai qd même besoin de cette ligne sinon le documentRoot ne marche plus.
 
 
 
j'ai testé et ça ne change rien...
 
 
j'vais essayé de désactiver les Vhosts pour voir...
 
pareil, j'ai mis en commentaires les includes pour les Vhosts et mis /var/www/home/web à la place de /var/www/*/web ça ne change rien :sweat:


Message édité par duch le 06-05-2003 à 13:15:13
Reply

Marsh Posté le 06-05-2003 à 13:47:09    

en fait tu as mais un virtualhost *
le premier virtual host défini sera également le serveur web par défault meme si on rentre par l'ip dessus .
(bref le document root n'est pas réellement respecté  )
a priori tu as  aussi deux virtuals host partageant le meme répertoire , dans ce cas tu peux faire un Serveralias  au lieu de définir un nouveau virtual host .
(& puis j'ai ne t'ai pas dis de t'emmerder avec mod_vhost mais c'était au cas ou tu disposais de bcp de vhost & que tu voulais justement éviter de redéfinir des cgi-bin & co (quoique lui est assez simple en fait car une fois mis en place tu n'as plus besoin de retoucher ce niveau , tu te contentes de mettre un repertoire la ou il faut :D ) )
 
 
 
 
 
 

Reply

Marsh Posté le 06-05-2003 à 14:05:09    

ok je comprends, en effet pour la beauté de la chose je peux virer DocumentRoot /var/www/home/web de httpd.conf et mettre  
 
<Directory /var/www/*/web>
    Options Indexes Includes FollowSymLinks MultiViews
    AllowOverride all
    Order allow,deny
    Allow from all
</Directory>
 
dans le Vhosts.conf
 
mais bon l'avantage c'est que au cas où je désactive include de Vhosts.conf, j'ai qd même mon premier site qui marche alors que si je vous tout dans Vhosts.conf y'a pu rien :D
 
Sinon j'connaissais pas ServerAlias, c'est vrai que ça évite de définir deux Vhosts différent, j'vais essayer...
Edit : j'ai mis ServerAlias www.icilalune.com www.icilalune.fr
 ça fout l'bordel dans mes redirect, parce que maintenant ils sont tous redirigés vers www.icilalune.com
 
M'enfin bref, malheuresement c'est pas ça qui fait que mes user_dir ne marchent pas :sweat:


Message édité par duch le 06-05-2003 à 14:11:40
Reply

Marsh Posté le 06-05-2003 à 14:17:13    

ce serait plus ServerAlias www.icilalune.fr mais j'ai pas pris en compte les Redirect dans ton vhost en effet ;)
question bete tu as bien un repertoire public_html dans les comptes des utilisateurs & il est bien en +x ? (je sais plus ce que j'ai dis & j'ai la flemme de me relire :sweat: )
car la ca commence a etre bizarre :/
en fait ce qui me pose probleme c'est l'utilisation de * dans ta directive Directory .
(tiens d'ailleurs je vais remettre mod_vhost sur le mien :D )
 


Message édité par mikala le 06-05-2003 à 14:22:16
Reply

Marsh Posté le 06-05-2003 à 14:23:59    

le voilà :  
 
drwxrwxr-x    2 gregory  users        4096 mai  6 11:09 public_html
 
il est en 775 (j'l'avais mis comme ça pour tester) mais ça change rien, j'ai même mis le fichier index.html en 777 pour rigoler :D
 
pourquoi le * te pose problème, c'est une wildcard, c'est tout.
Dans tous les cas avec ou sans, et avec ou sans Vhosts ça change rien alors :(
 
 
il me manquerait pas un module essentiel par hasard? J'pense pas sinon mod_userdir ne démarrerait pas.


Message édité par duch le 06-05-2003 à 14:26:40
Reply

Marsh Posté le 06-05-2003 à 14:47:34    

je sais que c'est une wildcard , mais en fait j'ai peur d'un conflit avec la wildcard de userdir par la suite c'est pour cela ~.~ ( en fait du fait d'avoir joué avec _vhost je m'attends plus a des % & co ) quoiqu'en réfléchissant 5 secondes c'est un peu con comme crainte :D
tu as bcp de vhosts ? ( sinon tu veux pas juste tester meme si c'est _tres_ lourd ) de définir les directory dans chaque vhost (ou tout du moins sur les deux premiers .& commenter ce /var/www/*/web ) ?

Reply

Marsh Posté le 06-05-2003 à 14:54:18    

bah j'veux bien mais je l'ai déjà fait puisque j'ai déjà essayer de désactivé tous les Vhosts (en virant l'include) et que j'ai virer la wildcard, et ça marchait pô.
 
Donc...

Reply

Marsh Posté le 06-05-2003 à 15:05:58    

bah c'est justement c'est justement userdir_mod qui t'apporte le ~
je suis en train de désactiver mes modules a tour de bras pour tester ~.~

Reply

Marsh Posté le 06-05-2003 à 15:09:42    

il est fou :crazy:
 
j'vais essayer l'inverse, remettre tous les modules que j'ai désactivés :D
 
Edit : c'est marrant en réactivant tous les modules le site ne fonctionne plus :D
 
j'vais les réactiver un par un...


Message édité par duch le 06-05-2003 à 15:13:06
Reply

Marsh Posté le 06-05-2003 à 15:20:41    

bon rien n'y fait ~.~
je trouve pas :/
tu devrais essayer de mailer la ml debian peut etre que quelqu'un a déja eu ce probleme :/

Reply

Marsh Posté le 06-05-2003 à 15:21:34    

bah j'trouve pas non plus, merci d'y avoir consacrer autant de temps
 
:hello:


Message édité par duch le 06-05-2003 à 15:21:46
Reply

Marsh Posté le 06-05-2003 à 15:25:10    

<mode chiant>
tu veux pas essayer d'en compiler un par toi meme vite fait a coté ? & donc de voir si ca marche  (tu le fais tourner sur un autre port afin de ne pas couper ton autre serveur ;p ) , si oui c'est peut etre ton packtage qui a merdé ~.~
tu as vérifié les updates tiens ?
</mode chiant>

Reply

Marsh Posté le 06-05-2003 à 15:57:23    

[mode chiant OFF]
j'ai pas envie de tout foutre en l'air, j'suis pas assez à l'aise pour faire ce genre de chose...
[mode chiant OFF]
 
apt-get update
apt-get upgrade
 
juste avant

Reply

Marsh Posté le 06-05-2003 à 16:40:54    

trouvé c'était un problème tout con :gun:
 
public_html avait bien les bonnes autorisations (même trop :D ), mais il faut aussi que le home dir du user soit accessible à apache pour que ça marche, donc un un ch'ti chmod -R 754 sur le home dir et ça marche...

Reply

Marsh Posté le 06-05-2003 à 16:57:33    

arf  
enfin ca marche ;)
 :hello:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed