Simone: chmod per system() bzw. exec()

HI
Mein Server läuft im Save Modus

Jetzt versuche ich per system
diesen Befehl auszuführen
um die Rechte ändern zu können (ohne ftp)

system("chmod -R 777  "/home/sites/sitexyz/www/verzeichniss" ");

warum geht das nicht?

simone

  1. Hello,

    Mein Server läuft im Save Modus

    Es wird wohl dein PHP sein, das im safe_mode läuft.

    Jetzt versuche ich per system
    diesen Befehl auszuführen
    um die Rechte ändern zu können (ohne ftp)

    system("chmod -R 777  "/home/sites/sitexyz/www/verzeichniss" ");

    warum geht das nicht?

    Weil im safe_mode die Programme, die mit exec() & Co aufgerufen werden sollen, im safe_mode_exec_dir liegen müssen.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hi Tom

      Ich probier jetzt schon seit Tagen ...

      Das will einfach nicht laufen wie kann ich die Rechte im safe_modus (PHP :)) vergeben ?

      Gebt mir mal ein Beispiel ( Google ist auch nicht mehr das was es mal war )

      Simone

      1. HI nochmal ich

        phpinfo() sagt das.

        safe_mode_exec_dir /usr/local/apache/www/empty
                           /usr/local/apache/www/phpbin

        wie starte ich dort eine Anwendung in Richtung exec()

        Danke
        Simone

        1. Hello,

          HI nochmal ich

          phpinfo() sagt das.

          safe_mode_exec_dir /usr/local/apache/www/empty
                             /usr/local/apache/www/phpbin

          wie starte ich dort eine Anwendung in Richtung exec() ^

          |
                Da fehlt ein Fragezeichen *gg* -------------------+

          Einfach Kopien der Programme dort ablegen, nur für den User des Webswervers freigeben und dann im PHP-Script Exec() oder system() oder $antwort = befehl aufrufen. PHP sucht sich den Pfad selber.

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          1. HI Tom
            Meine Tastatur hätte bald mit dem Bildschirm eine harte Auseinandersetzung gehabt.

            Ich raff es nicht ..

            Ok, ich möchte die Rechte von Verzeichnissen ändern. Das muß ich im safe_modus per system() oder per cgi machen. cgi kann ich nicht bleibt system über.

            Mein Beispiel:

            if(!(file_exists(IMAGE_DIR . $path))) {

            if(!(@mkdir(IMAGE_DIR . $path, 0777))) //geht ja nicht 0777 (save modus)

            // jetzt kommts ---->
             system ("chmod 0777 ".IMAGE_DIR . $path);

            // ----> das sollte  starten und mir die Rechte ändern ??
               }

            Soweit so ungut!

            Simone

            1. Hello,

              Ok, ich möchte die Rechte von Verzeichnissen ändern. Das muß ich im safe_modus per system() oder per cgi machen. cgi kann ich nicht bleibt system über.

              Was mit chmod() und chgrp() nicht geht, geht mit System und chmod auf Systemebene auch nicht, da der Befehl unter dem user des Apachen ausgeführt wird und nicht unter ROOT und ich hoffe doch sehr stark, dass der Apache nicht als Root läuft bei Dir.

              Es gibt aber einen Supi Workaround fpr das Problem:

              Schreib Dir einen Cron-Job, der von Root gestartet wird.
              Bestimm ein Verzeichnis, in dem Du die zu ändernden Rechte unter einer Schlüsselnummer ablegst. Das geht auch mit PHP
              Bestimm eine Datei in einem anderen Verzeichnis, in der Du die Schlüsselnummer und deine TAN (falls noch mehr SIcherheit notwendig ist) ablegst.

              Lass den Cron-Job alle zwei Minuten gucken, ob ein neuer Auftrag nebst passendem Schlüssel da ist. Dann lass ihn ausführen.

              Kapiert, wie ich das meine?

              system ("chmod 0777 ".IMAGE_DIR . $path);

              Und welche Fehlernummer gibt System zurüc`k. Hast Du das schon mal debuged?

              Liebe Grüße aus http://www.braunschweig.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      2. Hello Simone,

        Ich geh jetzt mal von Linux und Apche aus, ok?

        erstmal muss der wwwrun oder apache oder wie der User des Webservers auch immer heißt zu diesem Zweck der Owner der Dateien oder Verzeichnisse sein, sonst darf er keine Rechte ändern.

        Wenn er das ist, dann kann man die Befehle chmod() und chgrp() benutzen.

        http://de.php.net/manual/de/function.chmod.php

        Sonst hat er auch mit den System-Calls keine Chance.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen