sausage: failed to open stream: Permission denied

Halli, Hallo,

vllt kennt ihr das Prob schon, aber
mir ist nun vorgekommen das folgende Fehlermeldung bei
einem fopen() versuch bekomme.

Leier kann ich die funktion chmod() setzten wo ich will,
es kommt immer die selbe meldung. auch das die datei nicht existiere (bei chmod) weil sie ja dank mangelnder Berechtigung nicht erstellt werden darf.

ich bitte um eine Antwort die das erstellen von dateien erlaubt und dabei die berechtigungen setzt (777)

danke im vorraus
mfg

  1. hallo,

    vllt kennt ihr das Prob schon

    Du meinst, vielleicht sei "uns" dein Problem bekannt, übersetze ich das richtig?

    mir ist nun vorgekommen das folgende Fehlermeldung bei
    einem fopen() versuch bekomme.
    Leier kann ich die funktion chmod() setzten wo ich will

    Eine Fehlermeldung "Leier kann ich die funktion chmod() setzten wo ich will" ist mir noch nie begegnet.

    Vielleicht hilft es ja, wenn du deinen Code als Textdatei irgendwo hochlädat, damit man nachschauen kann, wie du es anstellst, eine derart seltene und schlecht formulierte Fehlermeldung zu erhalten.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. Moin sausage,

    einem fopen() versuch bekomme.

    Leier kann ich die funktion chmod() setzten wo ich will,

    wir brauchen da wohl etwas mehr Info. Wird fopen auf eine bestehende Datei losgelassen, oder auf eine neu zu erstellende Datei.

    Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast, dann bringt Dich der chmod natürlich auch nicht weiter.

    Wir brauchen also mehr Details:

    • Wie sehen die Rechte des Verzeichnisses aus
    • Wie sehen die Rechte der Datei aus
    • Soll eine bestehende Datei geöffnet werden, oder eine neue Datei

    Bis dahin

    regds
    Mike©

    --
    Freunde kommen und gehen. Feinde sammeln sich an.
    1. hallo Mike© ,

      wir brauchen da wohl etwas mehr Info.

      ACK.

      Wird fopen auf eine bestehende Datei losgelassen, oder auf eine neu zu erstellende Datei.

      Da wird man noch mehr differenzieren müssen und beispielsweise fragen, wie fsockopen in der php.ini festgelegt ist.

      Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast

      Die scheinen korrekt zu sitzen, obwohl 777 für PHP-Scripts eigentlich viel zu viel ist.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Moin Christoph,

        Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast

        Die scheinen korrekt zu sitzen, obwohl 777 für PHP-Scripts eigentlich viel zu viel ist.

        woher nimmst Du diese Info. Zunächstmal reicht ja für eine Datei 666 völlig aus (und kann noch weiter eingeschränkt werden)

        Aber, wir wissen weder ob es sich um eine TXT Datei handelt, geschweige den um ein PHP Datei. Woher hast Du diese Info?

        Ich staune, Du scheinst heute die Glaskugel de Luxe ausgepackt zu haben.

        Ich gehe mal davon aus, das es sich hier um das beliebte Problem des unterschiedlichen FTP und PHP bzw. WebServer User handelt.

        regds
        Mike©

        --
        Freunde kommen und gehen. Feinde sammeln sich an.
        1. hallo Mike© ,

          Du scheinst heute die Glaskugel de Luxe ausgepackt zu haben.

          Nö, ich habe nur das OP aufmerksam gelesen - so lang ist es ja nicht.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Moin Christoph,

            Nö, ich habe nur das OP aufmerksam gelesen - so lang ist es ja nicht.

            und dort besteht der einzige Hinweis daraus:

            [...]ich bitte um eine Antwort die das erstellen von dateien erlaubt und dabei die berechtigungen setzt (777)[...]

            Du schriebst: [...]Die scheinen korrekt zu sitzen[...]

            Aha, welche Rechte sind denn nun gesetzt?

            Du schriebst: [...]obwohl 777 für PHP-Scripts eigentlich viel zu viel ist[...]

            Woher weißt Du das es um PHP Scripte geht, oder war das nur eine Bemerkung am Rande?

            Sollte ich total daneben liegen, dann biete ich um Verzeihung.
            Ansonsten schaue mal ob am Boden deiner Galskugel de Luxe noch der Bepper drauf ist "Made in Taiwan"

            regds
            Mike©

            --
            Freunde kommen und gehen. Feinde sammeln sich an.
            1. hallo Mike© ,

              Woher weißt Du das es um PHP Scripte geht

              Aus der Überschrift. "(PHP) failed to open stream: Permission denied" sieht doch unzweifelhaft danach aus, daß hier eine PHP-Frage vorliegt.

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Moin Christoph,

                Aus der Überschrift. "(PHP) failed to open stream: Permission denied" sieht doch unzweifelhaft danach aus, daß hier eine PHP-Frage vorliegt.

                Yep, aber ich glaube wir reden aneinander vorbei.
                Natürlich geht es um PHP, aber die zu berabeitende Datei ist doch keine PHP Datei. Aber Dein Kommentar läßt dies so erscheinen.

                [...]obwohl 777 für PHP-Scripts eigentlich viel zu viel [...]

                Lasse es uns hier abbrechen, und mal sehen was der OP beitragen kann.

                regds
                Mike©

                --
                Freunde kommen und gehen. Feinde sammeln sich an.
        2. echo $begrüßung;

          Wenn Du keine entsprechenden Rechte auf das Verzeichnis oder die Datei hast
          Die scheinen korrekt zu sitzen, obwohl 777 für PHP-Scripts eigentlich viel zu viel ist.
          woher nimmst Du diese Info. Zunächstmal reicht ja für eine Datei 666 völlig aus

          Also 777, was oktal 1411 entspricht, ist deutlich zu wenig, wenn der Webserver nicht unterm gleichen Benutzer läuft wie der Dateiersteller.
          Das entspricht r-- --x --x *)
          Der User kann es lesen, Gruppe und Andere nur ausführen. Aber ohne eine Datei lesen zu dürfen wird man sie sicher auch nicht ausführen können.

          666, also oktal 1232 ist auch nicht viel besser. -w- -wx -w- *)

          Vielleicht hat sausage die Beschreibung zu chmod() im Handbuch nicht richtig gelesen oder verstanden, denn die sagt deutlich, dass statt dem dezimalen 777 die Oktalschreibweise, also 0777, zu verwenden sei, wenn man rwx rwx rwx meint.

          Ansonsten wäre noch hilfreich zu wissen,

          • wem das Verzeichnis gehört, in das geschrieben werden soll, und wie die Rechte gesetzt sind,
          • welcher User die Datei schreiben soll,
          • welcher sie lesen soll,
          • ob PHP im Safe-Mode läuft, falls es als Apache-Modul installiert ist.

          echo "$verabschiedung $name";

          *) Das Sticky-Bit lasse ich mal unter den Tisch fallen.

          1. ALSO,

            die folgenden punkte sind die die ihr anscheinend soo dringend benötigt:

            • mit fopen() soll eine neue datei erstellt werden.
            • die rechte das verzeichnisses habe ich schon auf 777 stehen.
            • die Datei hat noch keine trechte da sie erst erstellt werden soll.

            (übrigens: dieses prob habe ich auch mit mkdir())

            hier ein link:
            http://www.doenemeier.de/forum/login.php

            mit diesen Daten könnt ihr euch einloggen:

            user: patermaximus
            passwort: geheim

            schon beim versuch auf die bereits bestehende datei online.txt zu schreiben kommt der fehler (diese datei existiert schon).

            1. Moin sausage,

              • die rechte das verzeichnisses habe ich schon auf 777 stehen.

              gibt es ein übergeordnetes Verzeichnis?

              regds
              Mike©

              --
              Freunde kommen und gehen. Feinde sammeln sich an.
              1. Hi Mike,

                gibt es ein übergeordnetes Verzeichnis?

                ja, das gibtes, das steht auf chmod(777)
                aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.

                1. Moin sausage,

                  ja, das gibtes, das steht auf chmod(777)
                  aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.

                  bitte poste mal die fopen() Zeile mit all den dazugehörigen (befüllten) Variablen

                  regds
                  Mike©

                  --
                  Freunde kommen und gehen. Feinde sammeln sich an.
                2. Hallo sausage.

                  gibt es ein übergeordnetes Verzeichnis?

                  ja, das gibtes, das steht auf chmod(777)

                  Ein Verzeichnis kann nicht auf einem Kommando stehen.

                  aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.

                  Bitte lesen.

                  Einen schönen Montag noch.

                  Gruß, Ashura

                  --
                  sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
                  „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
                  [HTML Design Constraints: Logical Markup]
                3. Moin sausage,

                  ja, das gibtes, das steht auf chmod(777)
                  aber trotzdem kommen immernoch Fehler wenn ich etwas erstellenwill.

                  alle unten aufgeführten Verzeichnisse haben 777? Beginnend bei /home

                  /home/doenemeier-de/htdocs/forum

                  regds
                  Mike©

                  --
                  Freunde kommen und gehen. Feinde sammeln sich an.
                  1. alle unten aufgeführten Verzeichnisse haben 777? Beginnend bei /home

                    /home/doenemeier-de/htdocs/forum

                    ja so ungefähr, nicht ganz.

                    /home/doenemeier-de/htdocs/forum/foren

                    ich habe die themen und Threads in ein eigenes verzeichnis gepackt, sollte aber keinen unterschied machen. auf alle fälle:
                    der Ordner "foren" hat 0777 und alle ordner darunter auch.
                    (auch die mit mkdir() erstellten haben 0777).

                    trotzdem aber gelingt es nicht eine enthaltene .txt zu editieren oder gar zu erstellen. (wobei editieren noch einfach zu lösen wäre, da die datei ja schon existiert und chmod() nicht fehlschlägt.)

                    1. Moin sausage,

                      alle unten aufgeführten Verzeichnisse haben 777? Beginnend bei /home

                      /home/doenemeier-de/htdocs/forum

                      ja so ungefähr, nicht ganz.

                      /home/doenemeier-de/htdocs/forum/foren

                      der Ordner "foren" hat 0777 und alle ordner darunter auch.
                      (auch die mit mkdir() erstellten haben 0777).

                      ja, und alle darüber?
                      -home
                      -doenemeier-de
                      -htdocs

                      Wenn die alle 777 haben, dann poste doch bitte den Funktionsaufruf fopen().

                      regds
                      Mike©

                      --
                      Freunde kommen und gehen. Feinde sammeln sich an.
                      1. ja, und alle darüber?
                        -home
                        -doenemeier-de
                        -htdocs

                        Wenn die alle 777 haben, dann poste doch bitte den Funktionsaufruf fopen().

                        ob /home/ oder /doenemeier-de/ oder /htdocs/ 0777 haben, darauf habe ich keinerlei enfluss.

                        der funktionsaufruf ist so wie jeder andere:

                        $fp = fopen($datei,"wb");

                        1. Moin sausage,

                          ob /home/ oder /doenemeier-de/ oder /htdocs/ 0777 haben, darauf habe ich keinerlei enfluss.

                          der funktionsaufruf ist so wie jeder andere:

                          $fp = fopen($datei,"wb");

                          dann verweise ich ebenfalls mal auf die Fragen von dedlfix.
                          https://forum.selfhtml.org/?t=134243&m=870711

                          regds
                          Mike©

                          --
                          Freunde kommen und gehen. Feinde sammeln sich an.
                          1. Die Antworten auf dedlfix fragen
                            findet ihr auf diesem Link:
                            http://www.doenemeier.de/phpinfo.php

                            da ich mich mit sowas nicht sonderlich auskenne.

                            Schreiben und ändern und lesen soll php.

                            1. Moin sausage,

                              Die Antworten auf dedlfix fragen
                              findet ihr auf diesem Link:
                              http://www.doenemeier.de/phpinfo.php

                              ich muss fairer Weise kapitulieren. Hat jemand der Forumsteilnehmer noch einen Tipp?

                              Mike©

                              --
                              Freunde kommen und gehen. Feinde sammeln sich an.
                            2. echo $begrüßung;

                              Die Antworten auf dedlfix fragen
                              findet ihr auf diesem Link:
                              http://www.doenemeier.de/phpinfo.php

                              • wem das Verzeichnis gehört, in das geschrieben werden soll, und wie die Rechte gesetzt sind,

                              unbeantwortet

                              • welcher User die Datei schreiben soll,

                              vermutlich der wwwrun, also der User unter dem der Apache läuft

                              • welcher sie lesen soll,

                              vermutlich auch der wwwrun

                              • ob PHP im Safe-Mode läuft, falls es als Apache-Modul installiert ist.

                              nein.

                              Das ist schon mal etwas, aber noch nicht genügend Information, um den Fehler nachzustellen. Hast du Shell-Zugriff auf der Kiste? Wenn ja, was zeigt denn "ls -la" an, wenn du dich in dem Verzeichenis befindest? Wenn nein, was ergibt folgendes Miniscript für eine Ausgabe:

                              <pre>  
                              <?php echo `ls -la`;
                              

                              Desweiteren hätte ich gern den relevanten Code-Teil gesehen. Versuche bitte ebenfalls ein kleinstmögliches Script zu erstellen, mit dem das Problem nachstellbar ist.

                              da ich mich mit sowas nicht sonderlich auskenne.

                              Das ist kein Problem, solange du genau die Fragen beantwortest, die dir gestellt werden. Es ist nicht schlimm, wenn du sie nicht gleich verstehst, aber dann solltest du lieber noch mal nachfragen, als sie zu ignorieren.

                              echo "$verabschiedung $name";