writer: Dateien herunter laden

Hallo!
Ich habe ein kleines Programm geschrieben, dass einige Dateien aus dem Netz laden muss.
Diese müssen ja auf dem Server gespeichert werden, wozu die Dateirechte 777 nötig wären.
Jetzt ist das aber nicht so sicher und es wird von Hostern mit einem internal Server Error bearbeitet.

Gibt es eine Möglichkeit Dateien von einem anderen Server herunter zu laden, ohne dafür solche Verzeichnisrechte vergeben zu müssen?

  1. Hi,

    Ich habe ein kleines Programm geschrieben, dass einige Dateien aus dem Netz laden muss.
    Diese müssen ja auf dem Server gespeichert werden, wozu die Dateirechte 777 nötig wären.

    Wieso glaubst Du, daß dafür 777 nötig wäre?

    Zum Speichern muß die Datei nicht ausführbar sein. Also reicht schon 666.
    Speichern muß auch nur der User, unter dem PHP läuft. Dessen Gruppe und User außerhalb der Gruppe brauchen keinerlei Zugriff. Also reicht schon 600.

    Auf das Leserecht könnte man auch noch verzichten, 200 reicht also.

    Gibt es eine Möglichkeit Dateien von einem anderen Server herunter zu laden, ohne dafür solche Verzeichnisrechte vergeben zu müssen?

    Deine Voraussetzung, daß 777 nötig wäre, ist schon falsch.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
    1. Zum Speichern muß die Datei nicht ausführbar sein. Also reicht schon 666.

      Die Datei muss schon ausführbar sein, da sie nach dem installieren als ganz normale PHP- Seite dient.

      Speichern muß auch nur der User, unter dem PHP läuft. Dessen Gruppe und User außerhalb der Gruppe brauchen keinerlei Zugriff. Also reicht schon 600.

      Das Projekt läuft bei einem Hoster. Ich weiß nicht wie es dort mit den Nutzern steht?
      Es muss ja auch vom WWW aus gelesen werden können, wie eine normale Website.

      Also der Ablauf soll so sein:
      Der Download ist bei einem Update.
      1. Die Datei existiert noch nicht in allen Fällen. (Das stellt kein Problem dar, da PHP vorhandene Dateien ja einfach überschreibt)
      2. Die Datei wird für das Update herunter geladen
      3. Die Datei dient als ganz normale WWW- Seite und kann aufgerufen werden.

      Ich denke mal, dass dafür die Rechte 200 nicht reichen.

      1. Moin!

        Zum Speichern muß die Datei nicht ausführbar sein. Also reicht schon 666.
        Die Datei muss schon ausführbar sein, da sie nach dem installieren als ganz normale PHP- Seite dient.

        Nein. PHP-Dateien werden nicht im Unix-Sinne "ausgeführt", sie werden nur als Textdatei gelesen und dem PHP-Parser gegeben.

        - Sven Rautenberg

      2. Lieber writer,

        Du willst entweder 0600 (Andreas' Vorschlag), oder 0660. Alles andere scheint mir nicht sinnvoll.

        Liebe Grüße,

        Felix Riesterer.

        --
        ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
        1. Du willst entweder 0600 (Andreas' Vorschlag), oder 0660. Alles andere scheint mir nicht sinnvoll.

          Ich habe jetzt beides getestet jedoch kommt bei mir immer 403 - Forbidden.

          Weiß event. jemand wie das Update bei Wordpress realisiert ist? Da muss man ja auch keine Rechte zum schreiben geben...

          1. Tach!

            Du willst entweder 0600 (Andreas' Vorschlag), oder 0660. Alles andere scheint mir nicht sinnvoll.

            Die Berechtigungen sind nur die halbe Wahrheit. Die andere Hälfte, ohne die es nur bedingt sinnvoll ist, die Zahlenwerte zu diskutieren, sind die Besitzverhältnisse. Wem gehören die Verzeichnisse und Dateien und wer will darauf zugreifen (und in welchen Gruppen befindet sich dieser)? Bei letzterem kommt es drauf an, unter wessen Kennung der Prozess läuft.

            Ich habe jetzt beides getestet jedoch kommt bei mir immer 403 - Forbidden.
            Weiß event. jemand wie das Update bei Wordpress realisiert ist? Da muss man ja auch keine Rechte zum schreiben geben...

            Wordpress kann nicht zaubern. Es ist auf die gegebenen Berechtigungen angewiesen und kann sich diese nicht selbst verschaffen. Wenn es keine Schreibberechtigung in die zu ändernden Verzeichnise hat, kann es sich nicht updaten.

            Bei Berechtigungsproblemem ist - abgesehen von der nicht empfehlenswerten Holzhammermethode 777/666 - es wichtig, das System der Besitzverhältnisse und Berechtigungen zu verstehen, denn nur so hat man das Wissen, die individuellen Gegebenheiten des Systems zu erkennen und genau die passenden und nicht mehr Berechtigungen zu setzen.

            dedlfix.

            1. Wem gehören die Verzeichnisse und Dateien und wer will darauf zugreifen (und in welchen Gruppen befindet sich dieser)? Bei letzterem kommt es drauf an, unter wessen Kennung der Prozess läuft.

              Die Dateien/Verzeichnisse gehören mir als Kunde des Hosters. Zugreifen möchte ich darauf mit PHP. Ich glaube das PHP nicht unter meiner Benutzerkennung ausgeführt wird...

              Wordpress kann nicht zaubern. Es ist auf die gegebenen Berechtigungen angewiesen und kann sich diese nicht selbst verschaffen. Wenn es keine Schreibberechtigung in die zu ändernden Verzeichnise hat, kann es sich nicht updaten.

              Ich habe auf meiner Seite auch Wordpress laufen. Dort läuft das Update perfekt. Ich musste jedoch nie Schreibrechte erteilen.

              1. Tach!

                Wem gehören die Verzeichnisse und Dateien und wer will darauf zugreifen (und in welchen Gruppen befindet sich dieser)? Bei letzterem kommt es drauf an, unter wessen Kennung der Prozess läuft.
                Die Dateien/Verzeichnisse gehören mir als Kunde des Hosters. Zugreifen möchte ich darauf mit PHP.

                Das ist sehr umgangssprachlich geantwortet, aber nicht im Sinne des Unix-Berechtigungskonzepts. Es wäre besser für die Lösung deines Problems, wenn du dich mit diesem beschäftigen würdest, damit du dann die zielführenderen Fragen formulieren kannst. (Außerdem kannst du auch den Support deines Hosters um Hilfe bitten, wenn du mit seinem System nicht klar kommst. Der kann auf die Systeme draufschauen und dir direkt antworten. Ich als Außenstehender kann dir nur beim Formulieren der Fragen helfen, die du klären musst, wenn du nicht den Hoster befragen möchtest.)

                Nochmal genauer gefragt: Welcher Benutzerkennung gehört das Verzeichnis, welche Kennung möchte darauf zugreifen.

                Ich glaube das PHP nicht unter meiner Benutzerkennung ausgeführt wird...

                Glauben bringt dich hier nicht weiter. Finde es heraus! Stell (dir) dazu konkrete Fragen! Dann findest du vielleicht auch mit der Suche im PHP-Handbuch (ode der Hilfe einer Suchmaschine) Funktionen wie getmyuid(), getmygid(), getmypid(), get_current_user() sowie die Posix-Functions (die sind umfangreicher, als die im Kern von PHP eingebauten). Auch die PHP Shell kann helfen, weil man damit die Unix-Kommandos direkt eingeben kann und nicht ein PHP-Script drumrumstricken muss.

                Ich habe auf meiner Seite auch Wordpress laufen. Dort läuft das Update perfekt. Ich musste jedoch nie Schreibrechte erteilen.

                Das heißt nur, dass da alles passt - wie auch immer die konkreten Verhältnisse sind.

                dedlfix.

                1. Außerdem kannst du auch den Support deines Hosters um Hilfe bitten, wenn du mit seinem System nicht klar kommst.

                  Ich werde ihn mal fragen. Welche Fragen muss ich stellen?

                  • Unter welchem Benutzer läuft PHP?
                  • Wenn ein Skript Dateien herunter läd, schreibt es diese über meine Benutzerkennung?
                  1. Tach!

                    Außerdem kannst du auch den Support deines Hosters um Hilfe bitten, wenn du mit seinem System nicht klar kommst.
                    Ich werde ihn mal fragen. Welche Fragen muss ich stellen?

                    Du könntest ihm dein eigentliches Problem beschreiben. Die anderen Fragen dienen nur dazu, die Arbeitsweise insgesamt zu verstehen. Wenn du daran Interesse hast, dann informier dich, wie schon empfohlen, über das Unix-Rechtesystem, dann kommen die Fragen von selbst.

                    • Unter welchem Benutzer läuft PHP?

                    Einersets das und andererseits, ob das ein anderer als deine FTP/sonstwas-Kennung ist und wenn ja, warum das der Fall ist, warum es da zwei Nutzer gibt, womöglich sogar noch ein gemeinsamer Nutzer für alle PHP-Prozesse aller Kunden.

                    In einem gut konfigurierten Mehrnutzer-System hat jeder Nutzer (oder jede Anwendung) eine eigene Kennung und startet PHP auch unter dieser Kennung (jedenfalls nicht mit einer Massenkennung und dann womöglich gar noch unter dem so genannten "Safe Mode").

                    • Wenn ein Skript Dateien herunter läd, schreibt es diese über meine Benutzerkennung?

                    Es kommt hier nur auf den schreibenden Zugriff auf das Dateisystem an. Warum das Script das macht, ist nicht weiter wichtig.

                    dedlfix.