OVH Cloud OVH Cloud

La cde" mkdir" ne marche pas avec Apache

1 réponse
Avatar
Vincent
Bonjour,



La commande mkdir (pour créer un répertoire) ne marche pas sur mon PC avec
Apache.



Lorsque je teste mon programme sur mon PC configuré sous windows XP avec
Apache et Active perl 5.8, la commande system « mkdir » ne marche que si je
crée le répertoire dans mon cgi-bin, c'est à dire dans le même répertoire
que la où se trouve mon programme :

$dir="Toto";

system("mkdir $dir "); # ça marche

Mais si je veux le créer un niveau de répertoire au dessus ou en dessous,
ou par un chemin quelconque qui me fait sortir du répertoire cgi-bin cela ne
marche pas.



$dir="../www/Toto"; # ou même :
$dir="../cgi-bin/Toto";

system("mkdir $dir"); # ça marche pas



Avez vous une explication ?

Est ce dû à ma configuration d'Apache ?

1 réponse

Avatar
Jérémy JUST
On Thu, 16 Jun 2005 00:17:29 +0200
"Vincent" wrote:

la commande system « mkdir » ne marche que si je crée le répertoire
dans mon cgi-bin, c'est à dire dans le même répertoire que la où se
trouve mon programme


Sur un système configuré de façon à la fois standard et sûre, ça ne
devrait même pas fonctionner.


Avez vous une explication ?
Est ce dû à ma configuration d'Apache ?


Je pense que c'est un problème de droits.
Généralement, Apache doit tourner en tant qu'un utilisateur qui n'a
*aucun* droit de modification dangeureuse sur le système (souvent un
pseudo-utilisateur « nobody » ou « http »). Si c'était le cas chez toi,
tu ne devrais même pas pouvoir créer un répertoire dans cgi-bin (à
moins que cgi-bin ne soit world-writable).


Ce n'est pas un problème de Perl mais un problème de politique de
sécurité. Avant de choisir une solution parmi les différentes
possibilités, évalue tous les risques qui peuvent se présenter.



Pour parler de Perl, plutôt que faire un
system("mkdir $dir ")
tu devrais faire
mkdir $dir
qui est plus sûr, plus simple et plus efficace.

--
Jérémy JUST