swiss cow: SAFE MODE --- unlink() nicht möglich

Guten Morgen allerseits!

Hab da ein Problem mit dem Löschen von Dateien per unlink().

Meldung:

Warning: unlink(): SAFE MODE Restriction in effect. The script whose uid is 1938 is not allowed to access / owned by uid 0 in /home/www/....

Hab bereits nach Lösungen gesucht aber finde nichts, dass mir weiterhilft.

Falls es aber daran(http://www.phpforum.de/archiv_42552_unlink@und@der@bse@safe@mode_anzeigen.html) liegen sollte, muss ich mich an den Provider wenden.

Kann mir das jemand bestätigen oder hat - noch besser - jemand ne andere Lösung?

--- so nebenbei, wär ich dankbar für die erklärung wie ich hier html verwenden kann (z.B. für den angegebenen Link). DANKE! ---

  1. Hallo,
    bitteschön!

    Gruß,
    Klappi

  2. Hellihello swiss cow,

    Hab da ein Problem mit dem Löschen von Dateien per unlink().

    Meldung:

    Warning: unlink(): SAFE MODE Restriction in effect. The script whose uid is 1938 is not allowed to access / owned by uid 0 in /home/www/....

    ja, kannste nicht drauf zugreifen, weil du die rechte nicht hast.

    Falls es aber daran(http://www.phpforum.de/archiv_42552_unlink@und@der@bse@safe@mode_anzeigen.html) liegen sollte, muss ich mich an den Provider wenden.

    jap, aber was willst du den unlinken und in welchem verzeichnis? kommst du da auch via ftp ran. wie sind die rechte für den ordner gesetzt? "Unlinken" mit php solltest du trotz safe-mode eigentlich können, shell_exec geht nicht.

    --- so nebenbei, wär ich dankbar für die erklärung wie ich hier html verwenden kann (z.B. für den angegebenen Link). DANKE! ---

    Geh mal auf antworten und schau Dir in meiner Antwort an, wie das mit dem Link geht - eckige klammer auf, "link:" dann dir url dann eckige klammer zu.

    Gruß,

    frankx

    1. Ja hallöle frankx,

      ##################################################################

      Warning: unlink(): SAFE MODE Restriction in effect. The script whose uid is 1938 is not allowed to access / owned by uid 0 in /home/www/....

      ##################################################################

      ja, kannste nicht drauf zugreifen, weil du die rechte nicht hast.

      --> chmod ist 777

      jap, aber was willst du den unlinken und in welchem verzeichnis?

      • user xy lädt eine datei hoch.
      • admin (und user) sollen diese löschen können.
      • Eintrag aus DB löschen ist kein Problem.

      das Verzeichnis ist url.ch/neu/pw/files
      bringt dir das was?

      kommst du da auch via ftp ran.

      theoretisch schon.
      Aber wie ich gestern gelesen hab hat der ftp dann wieder ne andere UID. und dann kommts wieder gleich. (NICHT AUSPROBIERT!)

      shell_exec geht nicht.

      was'n das? :)

      "link:" dann dir url dann eckige klammer zu.
      danke!

      Greez
      swiss cow

      1. Hellihello Schweizerkuh,

        das Verzeichnis ist url.ch/neu/pw/files

        bringt dir das was?

        na ich dachte, wenns außerhalb der Documentroot gelegen hätte...; wenn aber die Rechte auf 777 stehen, solltest Du eigentlich auch löschen können, oder? und das verzeichnis darüber? vielleicht hat das die falschen rechte? was ist, wenn du mit einem Script eine Datei erstellst und Sie dannach dann löschst?

        shell_exec geht nicht.

        was'n das? :)

        eine PHP-Funktion zum Ausführen von shell-commandos. Das wird beim Safe_Mode untersagt u.a....;

        "link:" dann dir url dann eckige klammer zu.
        danke!

        ich dachte das heißt "merci-vielmals" ?

        Grüezi,

        frankx

        1. Hello,

          na ich dachte, wenns außerhalb der Documentroot gelegen hätte...; wenn aber die Rechte auf 777 stehen, solltest Du eigentlich auch löschen können, oder?

          Nein, das wird vom PHP durch den Safe-Mode verhindert. Die Dateirechte für "normalen Zugriff" müssen sowieso stimmen, aber PHP prüft dann auch noch, ob die UIDs übereinstimmen (siehe https://forum.selfhtml.org/?t=161223&m=1048796 )

          und das verzeichnis darüber? vielleicht hat das die falschen rechte? was ist, wenn du mit einem Script eine Datei erstellst und Sie danach dann löschst?

          Das funktioniert auch nur, wenn das Script auch dem Webserver-User gehört.
          Also schenke es ihm mittels copy()-Befehl.

          Harzliche Grüße vom Berg
          http://bergpost.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

  3. Hello,

    Warning: unlink(): SAFE MODE Restriction in effect. The script whose uid is 1938 is not allowed to access / owned by uid 0 in /home/www/....

    Der Safe-Mode (UID) verlangt, dass die Datei, die Du ändern/löschen willst demselben Owner gehört, wie das Script, mit dem Du das machen willst, oder dass sie in einem Verzeichnis liegt, dass demselben Owner gehört, wie die Datei.

    Um den Schaden nicht zu vergrößern, sag erstmal

    • wem das Verzeichnis gehört, in dem die Daei liegt und welche Rechte gesetzt sind
    • wem die Datei gehört und welche Rechte gesetzt sind
    • wem das Script gehört

    Zwei Tricks, die meistens helfen:

    1. Lade das Script mittels GESCHÜTZTEM Upload-Script
      (also per HTTP-Fileupload-Formular) auf Deinen Server hoch

    2. Kopiere das Script auf dem Server mittels eines GESCHÜTZTEN Scriptes einmal.
       Soweit ich mich erinnere geht das sogar unter demselben Namen.

    Sinn der Aktion ist, dass die Scripte dadurch in das Eigentum des WWW-DATA oder WWWRUN oder APACHE oder wie der User auch immer heißen mag, unter dem der Webserver läuft, übergehen.

    Wenn es sich bei der zu löschenden Datei um eine handelt, die Du mit einem Script angelegt hast, also NICHT mit FTP hochgeladen hast, dann hat diese Vorgehensweise Erfolg.

    http://selfhtml.bitworks.de/Safe_Mode.doc  (ist ein Word97-Dokument. Lädt also eine Weile)

    Harzliche Grüße vom Berg
    http://bergpost.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

    1. Hello,

      Warning: unlink(): SAFE MODE Restriction in effect. The script whose uid is 1938 is not allowed to access / owned by uid 0 in /home/www/....

      Ich sehe aber gerade, dass die Datei, die Du löschen willst, augenscheinlich root gehört.

      Da wirst Du ohnehin keinen Erfolg haben. Oder läuft Dein Apache etwa unter dem User root?

      Harzliche Grüße vom Berg
      http://bergpost.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)