IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Apache chrooté n'execute pas : exec(); de PHP


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Points : 73
    Points
    73
    Par défaut [Système] Apache chrooté n'execute pas : exec(); de PHP
    Tout d'abord, bon soir et merci de lire ce sujet.

    Je suis en train d'écrire un petit site intranet et je n'arrive pas à faire fonctionner la fonction exec(); de PHP. Voici le code que j'ai entré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    // Affiche le nom d'utilisateur qui fait tourner le processus php/http
    // (sur un système ayant "whoami" dans le chemin d'exécutables)
    echo exec('whoami');
    ?>
    Mais après avoir réfléchis un moment (2 jours ), j'ai fini par comprendre :
    parce que sur OpenBSD (c'est l'OS que je dois utiliser) le serveur Apache est chrooté, il ne trouve pas le shell et par conséquent la fonction exec(); ne retourne rien

    En googulant un moment. j'ai lu qu'il suffisait de placer le fichier /bin/sh dans le dossier /var/www/, mais (comme ça ne suffit pas) je voulais savoir si quelqu'un aurait une idée là dessus.

    Très bon week end à toutes, et à tous :o

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    Essayant de trouver une solution, j'ai pensé qu'avec la fonction ssh2 de PHP il pourrait être possible de faire la même chose, même si Apache est chrooté. Cependant, je n'arrive pas à installer le module ssh2 sur OpenBSD (y'a toujours quelque chose qui ne va pas ), sachant qu'il n'est pas dans la liste des packages officiels (http://www.openbsd.org/3.8_packages/i386.html).

    Si quelqu'un a une idée, surtout qu'il n'hésite pas !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    Grace à WAMP, sous Windows, j'ai pu installer Apache+PHP+le module SSH2 (ouf!).

    D'autre part, via la doc officiel de PHP, j'ai trouvé la page : http://php.benscom.com/manual/fr/function.ssh2-exec.php

    D'où j'en ai déduit ce code de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $connection=ssh2_connect('192.168.1.3', 22);
    ssh2_auth_password($connection,'root','*****');
    ssh2_exec($connection,'pfctl -sr');
    Cependant, je n'arrive pas à afficher le résultat de la commande en retour sur ma page. D'ailleurs lorsque j'essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $connection=ssh2_connect('192.168.1.3', 22);
    ssh2_auth_password($connection,'root','*****');
    $tmp=ssh2_exec($connection,'pfctl -sr');
    echo $tmp;
    J'obtiens quelque chose comme Resource id #4 .

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 114
    Points : 73
    Points
    73
    Par défaut
    Ouf j'ai fini par y'arriver

    Voilà le code à utiliser pour récupérer la sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($var=fread($stream,131072))
    {
    	echo $var;
    }
    En espérant que ça pourra aider. Bon week end.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Exec() qui n'execute pas un script PHP
    Par MisterGrouik dans le forum Langage
    Réponses: 4
    Dernier message: 04/02/2010, 16h01
  2. [Wamp] WAMP5 n'execute pas mes instruction php.
    Par funymike dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 23/05/2008, 22h21
  3. [Système] Script qui ne s'execute pas
    Par griese dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2006, 11h20
  4. Réponses: 3
    Dernier message: 01/03/2006, 11h11
  5. [Kylix] Compilation OK Execution pas ok
    Par teurf dans le forum EDI
    Réponses: 14
    Dernier message: 03/12/2002, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo