Rahel: Safemode Fehler

Hallo Leute,

ich habe mir ein kleines Script geschrieben, welches mir mittels PHP Dateien erstellt - in den Dateien ist PHP-Code enthalten, der dann auch interprtiert werden sollte. Wenn ich die gleiche Datei zu Hause erstelle und dann hochlade, läuft alles prima. Wenn aber mein Script die Datei erstellt, dann bekomme ich folgenden Fehler:

Warning: main(): SAFE MODE Restriction in effect. The script whose uid/gid
is 99/99 is not allowed to access ../head.inc.php owned by
uid/gid 559/559 in /home/www/test.php on line 1

Die Rechte der datei werden schon durch mein Script auf 777 gestellt, aber trotzdem klappt es nicht - muss ich noch irgendetwas ändern, damit es auch mit Safemode läuft? Irgendwelche anderen Dateirechte?

1000x Danke für Eure Hilfe,

Rahel

  1. Vielleicht mit
    $mask= umask(0);

    vorher einfügen..

  2. Hallo,
    da gibt es ein Problem mit den Benutzern, und der Safe Mode überprüft, ob die Besitzer gleich sind, wenn nicht Fehlermeldung.

    Und zwar hat der FTP Account eine andere Benutzerkennung (UID) als das PHP Module.
    Da die Besitzer unterschiedlich sind, funktioniert dies nicht, trotz CHMOD(777).

    Möglichkeit 1:
    test.php und head.inc.php werden von dir hochgeladen

    Möglichkeit 2:
    test.php und head.inc.php werden vom PHP Module erstellt, also von einem PHP Script welche die Dateien erstellt.

    MFG
    Andavos

    1. Hallo,

      Möglichkeit 1:
      test.php und head.inc.php werden von dir hochgeladen

      Das möchte ich eben nicht - die Datein sollen ja online erstellt werden.

      Möglichkeit 2:
      test.php und head.inc.php werden vom PHP Module erstellt, also von einem PHP Script welche die Dateien erstellt.

      So ist das schon: Ich habe ein PHP-Script, dass die Dateien erstellt. Trotzdem klappts nicht. Das Ganze wird u.a. so gemacht:

      //Datei für Seite erstellen
         $fp = fopen("../".$file,"w");
         $vorlage  = '<? include "head.inc.php";?>';
         $vorlage .= "\n";
         $vorlage .= '<!-- START INHALT //-->';
         $vorlage .= "\n";
         $vorlage .= 'Test';
         $vorlage .= "\n";
         $vorlage .= '<!-- ENDE INHALT //-->';
         $vorlage .= "\n";
         $vorlage .= '<? include "foot.inc.php";?>';

      fputs($fp,$vorlage);
         fclose($fp);

      chmod("../".$file, 0777);

      Offline ist alles getestet ... hast Du eine andere Idee?

      LG, Rahel

      1. Hello,

        bau Dir ein passwortgeschütztes Uploadscript für die Scripte, dann klappts auch mit dem Safe Mode.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hi,

          bau Dir ein passwortgeschütztes Uploadscript für die Scripte, dann klappts auch mit dem Safe Mode.

          darum geht es nicht!!!

          ich will mit meinem Script PHP-Scripte erstellen (nach Auswahl in einem Formular). Da bringt mir ein Upload-Script nichts.

          Ich muss meiner neuen Datei irgendwie den gleichen Benutzer zuordnen wie der Benutzer der Datei, die die neue Datei erstellt.

          Rahel

          1. Hello,

            Ich muss meiner neuen Datei irgendwie den gleichen Benutzer zuordnen wie der Benutzer der Datei, die die neue Datei erstellt.

            Ja, sag ich doch. Lade dein Arbeitsscript, dass die neunen Scripte erstellen soll, mit einem Uploadscript hoch. Dann klappt es. Und lies Dir bitte die Abhandlung durch :-)

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Meinen Vorschlag schon probiert?

              1. Hello,

                Meinen Vorschlag schon probiert?

                Meine Doku schon gelesen? ;-))

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
                1. Hi,

                  also habe ich das richtig verstanden?
                  Nur wenn ich mein Arbeitsscript mit einem Uploadformular hochlade (und nicht mittels FTP!), dann klappt auch der Rest?

                  LG, Rahel

                2. Noch was:

                  Kann ich das Uploadscript auch mit einem Copybefehl umgehen? D.h. ich kopiere mit Copy() einfach eine Datei auf dem Server und öffne diese danach und schreib dann mein Script rein ... steht in deiner Doku nicht auch sowas:

                  <?php  ### safe_mode_copy.php ###

                  $src_name = 'safe_mode_test.php';
                  $tgt_name = 'safe_mode_test02.php';

                  $fh = fopen($src_name,'r');
                  $filedata = fread($fh, filesize($src_name));
                  fclose($fh);

                  $fh = fopen($tgt_name,'w');
                  fwrite($fh,$filedata);
                  fclose($fh);

                  ?>

                  LG, Rahel

                  1. Hello,

                    Kann ich das Uploadscript auch mit einem Copybefehl umgehen?

                    Ja. Das habe ich ja auch beschrieben.

                    Wichtig ist eben nur, dass sowohl/oder[1] die Dateien als auch die Verzeichnisse passen.

                    [1] Das Script gehört einem Owner oder liegt in einem Verzeichnis des Owners
                        auf dessen Datei zugegriffen werden soll.

                    Harzliche Grüße aus http://www.annerschbarrich.de

                    Tom

                    --
                    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                    Nur selber lernen macht schlau
              2. Hi,

                ja hab ich gerade gemacht - läuft leider auch nicht ... :-((((

                Rahel

  3. Hello,

    auf http://selfhtml.bitworks.de --> wie funktioniert der Safe Mode

    git es eine ausführliche Versuchsbeschreibung dazu.

    Aber in Kurzform hat Dir Andavos das auch schon erläutert.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau