suPHP Funktion system() Fehler

  • Schönen gutenn Abend,
    auf meinem vServer läuft suPHP und ich möchte in einer PHP Datei die Funktion system() benutzen. Leider scheint es hierbei zu einem Fehler zu kommen.


    PHP Datei

    PHP
    <?php
    error_reporting(E_ALL|E_STRICT); 
    ini_set('display_errors','On'); 
    system("screen -p 0 -S screenname -X eval \"stuff 'testbefehl'\015\"");
    system('id');
    ?>


    error.log

    Code
    [Wed Jan 09 23:37:58 2013] [error] [client *] sh: screen: not found
    [Wed Jan 09 23:37:58 2013] [error] [client *] sh: id: not found


    Offensichtlich werden die ausführbaren Dateien nicht gefunden, wobei im Browser keine Ausgabe erfolgt. Hat jemand einen Lösungsvorschlag?


    Grüße Seo

  • Es muss doch aber auch eine bessere Möglichkeit geben. Ich will ja nicht jedes kleine Programm das ich verwende mit dem vollständigen Pfad ansprechen. Evt. über Umgebungsvariablen? Im Manual wird die Funktion beispielsweise durchgängig ohne vollständigen Pfad benutzt.


    Trotzdem erst einmal vielen Dank für deine Hilfe.

    Einmal editiert, zuletzt von Seo ()

  • die ausfuehrung von "exec" lässt du zu?

    Logic will take you from A to B. Imagination will take you everywhere.(A.Einstein)
    Nur wer sein Ziel kennt findet auch den Weg!

  • Ja. Falls es hierbei um die Sicherheit geht sei die gesagt, dass durch den Einsatz von suPHP der Schaden sich im Fall einer kompromittierung des Systems in Grenzen halten würde. Alle wichtigen Daten sind durch verschiedene Benutzer von einander getrennt und haben jeweils keinen Zugriff auf die des anderen. Leider lässt sich in meinem Fall der Einsatz solcher Funktionen nicht vermeiden. Ansosnten dürften sich system() und exec() doch nur in der Ausgabe unterscheiden oder täusche ich mich?

  • ahhhh....sollte auch "system" heissen nicht "exec".


    ich hab gerade kein suPHP system zum testen bereit, auf einem fcgi system läuft es so wie es soll(auch ohne pfad)


    vieleicht ein rechte problem?

    Logic will take you from A to B. Imagination will take you everywhere.(A.Einstein)
    Nur wer sein Ziel kennt findet auch den Weg!

  • Bei suPHP sollte es env_path in der suPHP-Konfiguration geben. Dort kannst du eine der folgenden Zeilen eintragen, je nachdem welche funktioniert:

    Code
    env_path=/bin:/usr/bin
    env_path="/bin:/usr/bin"
    env_path=/bin\:/usr/bin


    Ungetestet, da ich zur Zeit kein suPHP laufen habe ;)



    MfG Christian

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • Vielen, vielen Dank an killerbees19. Nach deinem Eintrag habe ich gegooglet und festgestellt, dass der Standardwert ohne Anführungszeichen nicht funktioniert bzw. fehlerhaft ist. Der richtige Eintrag in der suphp.conf lautet:


    Code
    env_path="/bin:/usr/bin"


    Jetzt funktioniert alles wie gewohnt.