heinetz: Dateirechte nach FTP-Übertragung

Hallo Forum,

mir begegnet immer wieder eine Unschönheit, die ich nun
gerne mal angehen würde:

In meiner PHP-Website werden serverseitig hier um da
Dateien angelegt bzw. geändert. Beispielsweise wird
die Datei /content/temp.js von PHP verändert. Wenn
ich nun diese Datei aus meiner lokalen Entwicklungs-
umgebung (wo sie auch von php modifiziert wird) auf
den Webserver hochlade, funktioniert das nicht mehr,
weil php kein Schreibrecht hat.

Wie löst man das elegant?

danke für Tipps und

beste gruesse,
heinetz

  1. Moin

    Wie löst man das elegant?

    Lies dir das Manuel zum Befehl chmod() durch.

    Gruß Bobby

    --
    -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
    ### Henry L. Mencken ###
    -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
    ## Viktor Frankl ###
    ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
    1. Moin

      Bin heut ne richtig da. Das heißt natürlich Manual und es ist kein Befehl sondern eine Funktion. Ordnung muss sein. :D

      Gruß Bobby

      --
      -> Für jedes Problem gibt es eine Lösung, die einfach, sauber und falsch ist! <-
      ### Henry L. Mencken ###
      -> Nicht das Problem macht die Schwierigkeiten, sondern unsere Sichtweise! <-
      ## Viktor Frankl ###
      ie:{ br:> fl:{ va:} ls:< fo:) rl:( n4:( de:> ss:) ch:? js:( mo:} sh:) zu:)
      1. Hi,

        wenn php eine vorhandene Datei aufgrund fehlender Rechte an
        dieser nicht überschreiben darf, darf php die Rechte an
        dieser ändern? Was funktioniert hat war mit php die Datei
        zu löschen. Ist mir nicht ganz klar warum die Rechte dafür
        reichten aber ich vermute, das lag daran, dass dafür die
        Rechte an dem übergeordneten Verzeichnis ausschlaggebend
        sind.

        Ganz klar ist mir das mit den Brechtigungen nicht:

        beste gruesse,
        heinetz

        1. Hello,

          wenn php eine vorhandene Datei aufgrund fehlender Rechte an
          dieser nicht überschreiben darf, darf php die Rechte an
          dieser ändern? Was funktioniert hat war mit php die Datei
          zu löschen. Ist mir nicht ganz klar warum die Rechte dafür
          reichten aber ich vermute, das lag daran, dass dafür die
          Rechte an dem übergeordneten Verzeichnis ausschlaggebend
          sind.

          Ganz klar ist mir das mit den Brechtigungen nicht:

          Dazu müsstest Du das Betriebssystem + Filesystem nennen, denn da gibt es gravierende Unterschiede.

          Bei Linux gilt:

          Wenn neben den klassischen Dateirechten keine weiteren Rechtesysteme, wie ACL, Attribute, usw. verwendet werden, gilt:

          Hat der Prozess die Rechte rwx auf ein Verzeichnis, darf er darin Dateien anlegen, löschen, umbenennen, also _im_ Verzeichnis tätug werden. Hat er an den Dateien ebenfalls die Rechte rw-, darf er _in_ den Dateien etwas ändern. Hat er zusätzlich das x-Recht an der Datei, darf er sie ausführen lassen.

          Hat er an den Dateien jedoch nur das r-Recht (x lassen wir jetzt mal unbetrachtet), darf er die Datei nur lesen, also keine Veränderungen _in_ der Datei vornehmen.

          Deshalb hatte ich vorgeschlagen, die Group-Rechte dafür zu verwenden, dass PHP tätig werden darf, auch wenn dem PHP-User die Datei nicht gehört. Dafür muss aber die Gruppe des PHP-Users auch gesetzt werden dürfen von den betroffenen Prozessen. Sie müssen dafür selber Mitglied der Gruppe sein. Um dann beim FTP-Upload immer die Gruppe des PHP-Users automatisch einzutragen, setzt man im darüberliegenden Verzeichnis das GID-Flag

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          --
           ☻_
          /▌
          / \ Nur selber lernen macht schlau
          http://bergpost.annerschbarrich.de
          1. Hi,

            Dazu müsstest Du das Betriebssystem + Filesystem nennen, denn da gibt es gravierende Unterschiede.

            das ist ein meines Erachtens ein Debian Linux. Da ich lokal mit
            OS X arbeite, gehe ich davon aus, dass es dort das grundsätzlich
            genauso funktioniert.

            Bei Linux gilt:

            Wenn neben den klassischen Dateirechten keine weiteren Rechtesysteme, wie ACL, Attribute, usw. verwendet werden, gilt:

            Hat der Prozess die Rechte rwx auf ein Verzeichnis, darf er darin Dateien anlegen, löschen, umbenennen, also _im_ Verzeichnis tätug werden. Hat er an den Dateien ebenfalls die Rechte rw-, darf er _in_ den Dateien etwas ändern. Hat er zusätzlich das x-Recht an der Datei, darf er sie ausführen lassen.

            Hat er an den Dateien jedoch nur das r-Recht (x lassen wir jetzt mal unbetrachtet), darf er die Datei nur lesen, also keine Veränderungen _in_ der Datei vornehmen.

            Das deckt sich mit meiner Beobachtung:

            In dem Verzeichnis habe ich alle Rechte, die Datei ist allerdings
            vo PHP angelegt worden und ich habe insofert nur Leserechte an
            dieser Datei. Ich durfte also die Datei löschen, nicht aber
            Veränderungen an ihr vornehmen.

            danke fuer Tipps und

            beste gruesse,
            heinetz

            --
            ich lasse mich gerne überzeugen aber genauso ungern überreden.
  2. Hello,

    Wie löst man das elegant?

    Ich gehe mal von Linux-Server aus:

    Wenn Du keinen Konsolenzugang hast zum Server und keine Rechte, an der Konfiguration etwas zu ändern, dann sieht das schlecht aus.

    Die möglichen Workarounds wären

    • Dateien gleich mit einem (geschützten) PHP-Upload-Script hochladen
    • Dateien weiterhin mit FTP hochladen in ein separates Verzeichnis, dann aber auf dem
        Server mittels PHP-Script ins Zielverzeichnis kopieren.

    Anderenfalls könnte der Server so konfiguriert werden, dass im übergeorneten Verzeichnis, das als Gruppe die PHP-Gruppe haben sollte, das GID-Flag gesetzt wird. Der FTP-User, der ebenfalls Mitglied der PHP-Gruppe sein sollte, kann dann für die Gruppe das Write-Flag setzen.

    http://www.zzee.com/solutions/linux-permissions.shtml

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de