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";
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
On Thu, 16 Jun 2005 00:17:29 +0200
"Vincent" <vincentvallee@free.fr> 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.
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.