Datei auf dem Server mit Berechtigung 600 öffentlich lesbar ???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datei auf dem Server mit Berechtigung 600 öffentlich lesbar ???

    Hi,

    in den vergangenen Tagen habe ich mich notgedrungen mal ein wenig mit Datei- und Verzeichnisrechten auf dem Apache Server auseinandergesetzt und dachte, dass ich zumindest ein bisschen davon verstanden hätte.

    Doch jetzt kommen mir da gewisse Zweifel:

    Einer Datei xy.php im rootverzeichnis habe ich spaßeshalber mal die Rechte 600 verpasst, was ja bedeutet, nur der Besitzer kann sie lesen und beschreiben, und habe sie dann im Browser aufgerufen - in der Erwartung, eine Fehlermeldung zu erhalten. Doch siehe da: die Datei wird einwandfrei angezeigt. Ebenso, nachdem ich die Rechte auf 700 gesetzt hatte.
    Daraufhin habe ich das auch noch auf einem anderen Server getestet, der anders konfiguriert ist. Auch hier wird die Datei angezeigt, als ob das die normalste Sache der Welt sei.
    Das alles nicht etwa auf irgendwelchen Testservern oder auf einem XAMPP bei mir auf der Platte, sondern ganz normal im produktiven Einsatz, mit TLD und Webhostingvertrag und allen Schikanen, und die jeweiligen Hoster machen durchaus einen seriösen Eindruck auf mich.

    Die Rechte für das Verzeichnis, in dem sich die Datei befindet, stehen übrigens auf 755 bzw. 750. Und mein Betriebssystem ist natürlich das gute alte XP, was ja aber wohl in diesem Zusammenhang eigentlich keine Rolle spielen sollte.

    Das darf doch alles nicht wahr sein, woll???
    Oder habe ich da in Sachen 'permissions' irgendwas völlig missverstanden???
    Take it w3easy

  • #2
    Läuft der Apache unter dem selben User, dem auch die Datei gehört? Wenn ja, dann ist es ja logisch, dass er sie lesen kann.

    Kommentar


    • #3
      Auf dem einen Server ist der current user mein FTP user und der file owner www-data.
      Auf dem anderen Server ist cu und fo jeweils nobody.
      Take it w3easy

      Kommentar


      • #4
        Zitat von w3easy Beitrag anzeigen
        Auf dem einen Server ist der current user mein FTP user und der file owner www-data.
        Und du wunderst dich ernsthaft, dass der Webserver seine eigenen Dateien (www-data = Daten des Webservers) lesen kann??? Dem gehört schließlich die Datei. Wenn er sie nicht lesen könnte, wer dann?

        Speichere die Datei unter einem anderen User, dann kanns der Webserver auch nicht mehr lesen.
        Zuletzt geändert von h3ll; 10.05.2012, 15:43.

        Kommentar


        • #5
          Deine Antwort klingt irgendwie danach, dass ich da wohl grundsätzlich etwas missverstanden habe...
          Ist es etwa so, dass wenn der Server der Besitzer einer Datei ist, die öffentlichen Berechtigungen gleich den Besitzerberechtigungen sind?

          Unter einem anderen User speichern??? Wie geht das denn?
          Zuletzt geändert von w3easy; 10.05.2012, 15:49. Grund: Ergänzung
          Take it w3easy

          Kommentar


          • #6
            Zitat von w3easy Beitrag anzeigen
            Deine Antwort klingt irgendwie danach, dass ich da wohl grundsätzlich etwas missverstanden habe...
            Ist es etwa so, dass wenn der Server der Besitzer einer Datei ist, die öffentlichen Berechtigungen gleich den Besitzerberechtigungen sind?
            Was verstehst du unter "öffentlichen Berechtigungen"?

            Zitat von w3easy Beitrag anzeigen
            Unter einem anderen User speichern??? Wie geht das denn?
            Sich nicht als www-data, sondern als anderer User einloggen und die Datei erstellen.

            Oder mit chown einen anderen Besitzer setzen.

            Kommentar


            • #7
              Zitat von h3ll Beitrag anzeigen
              Was verstehst du unter "öffentlichen Berechtigungen"?
              In meinem FTP-Programm (FileZilla) ist von
              - Besitzerberechtigungen
              - Gruppenberechtigungen und
              - Öffentlichen Berechtigungen
              die Rede...

              Mein derzeitiger Kenntnisstand im Rahmen dieser Diskussion ist nun folgender:

              Wenn ich auf dem einen der beiden o.e. Server eine Datei mit einem PHP Script direkt auf dem Server erstelle - wie das bei der fraglichen Datei der Fall war -, dann gehört sie (jedenfalls wenn der Server entsprechend konfiguriert ist) dem Server - und damit allen, ist also eine öffentliche... Datei. Daher kann ich sie auch nicht vor öffentlichem Zugriff verbergen, indem ich den Lesezugriff auf den Besitzer einschränke.

              Wenn ich sie hingegen mit meinem FTP-Programm hochlade, dann gehört sie (ebenfalls wiederum unter der Bedingung, dass der Server entsprechend konfiguriert ist) dem FTP-User, und dann kann ich sie auch dem öffentlichen Zugriff dadurch entziehen, dass ich sie per Dateirechtevergabe nur noch dem Besitzer zugänglich mache.

              Was es allerdings mit dem anderen Server auf sich hat, bei dem alle Dateien immer 'nobody' gehören, egal ob ich sie mit einem Script direkt auf dem Server erstelle oder per FTP hochlade - hmmm, da muss ich dann wohl auch noch mal ran....


              Zitat von h3ll Beitrag anzeigen
              Oder mit chown einen anderen Besitzer setzen.
              Kann ich das mit einem PHP Script direkt auf dem Server tun?
              Take it w3easy

              Kommentar


              • #8
                Zitat von w3easy Beitrag anzeigen
                In meinem FTP-Programm (FileZilla) ist von
                - Besitzerberechtigungen
                - Gruppenberechtigungen und
                - Öffentlichen Berechtigungen
                die Rede...

                Mein derzeitiger Kenntnisstand im Rahmen dieser Diskussion ist nun folgender:

                Wenn ich auf dem einen der beiden o.e. Server eine Datei mit einem PHP Script direkt auf dem Server erstelle - wie das bei der fraglichen Datei der Fall war -, dann gehört sie (jedenfalls wenn der Server entsprechend konfiguriert ist) dem Server - und damit allen, ist also eine öffentliche... Datei. Daher kann ich sie auch nicht vor öffentlichem Zugriff verbergen, indem ich den Lesezugriff auf den Besitzer einschränke.

                Wenn ich sie hingegen mit meinem FTP-Programm hochlade, dann gehört sie (ebenfalls wiederum unter der Bedingung, dass der Server entsprechend konfiguriert ist) dem FTP-User, und dann kann ich sie auch dem öffentlichen Zugriff dadurch entziehen, dass ich sie per Dateirechtevergabe nur noch dem Besitzer zugänglich mache.

                Was es allerdings mit dem anderen Server auf sich hat, bei dem alle Dateien immer 'nobody' gehören, egal ob ich sie mit einem Script direkt auf dem Server erstelle oder per FTP hochlade - hmmm, da muss ich dann wohl auch noch mal ran....
                Tja, offenbar ist am Server der FTP-User der selbe, wie der Webserver-User. Somit kann der Webserver alle Dateien lesen, die du mit dem FTP-User hochladest.

                Zitat von w3easy Beitrag anzeigen
                Kann ich das mit einem PHP Script direkt auf dem Server tun?
                Die Frage ist, _was_ möchtest du tun? Wenn du mit dem PHP-Script der Datei einen anderen Besitzer zuweist, kannst du selber nicht mehr auf die Datei zugreifen, da PHP vermutlich ebenfalls als User www-data läuft. Dann hast du eine Datei rumliegen, die du nicht mehr lesen, verändern oder löschen kannst. Ob das so sinnvoll ist?

                Kommentar


                • #9
                  Der Hintergrund für mein Interesse an dem Thema ist folgender:

                  Ich habe mir ein kleines PHP Editor Script geschrieben. Auf dem (zweitgenannten) nobody/nobody Server ist das Script King und kann mit allen Dateien und in allen Verzeichnissen machen was es (und was ich!!!) will, auf dem anderen Server hingegen geht das so ohne weiteres nur mit vom Script erstellten Dateien und Verzeichnissen. Oder natürlich, wenn man alle Verzeichnisse auf 777 und die Dateirechte auf 666 setzt, und das soll man ja nicht tun...
                  Nun überlege ich, wie ich es anstelle, dass das Script auch auf diesem Server mächtig ist (z.B. Dateien im rootverzeichnis anlegen kann), ohne dass die Sicherheit darunter leidet.
                  Take it w3easy

                  Kommentar


                  • #10
                    Zitat von w3easy Beitrag anzeigen
                    Der Hintergrund für mein Interesse an dem Thema ist folgender:

                    Ich habe mir ein kleines PHP Editor Script geschrieben. Auf dem (zweitgenannten) nobody/nobody Server ist das Script King und kann mit allen Dateien und in allen Verzeichnissen machen was es (und was ich!!!) will, auf dem anderen Server hingegen geht das so ohne weiteres nur mit vom Script erstellten Dateien und Verzeichnissen. Oder natürlich, wenn man alle Verzeichnisse auf 777 und die Dateirechte auf 666 setzt, und das soll man ja nicht tun...
                    Nun überlege ich, wie ich es anstelle, dass das Script auch auf diesem Server mächtig ist (z.B. Dateien im rootverzeichnis anlegen kann), ohne dass die Sicherheit darunter leidet.
                    PHP-Dateien am Produktivserver sind überhaupt nicht zu bearbeiten. Die werden nur am Entwicklungsserver bearbeitet und anschließend (nach erfolgreichen Tests) auf den Produktivserver deployed.

                    Kommentar


                    • #11
                      Nun ja, es ist schon ungeheuer praktisch, wenn man 'on the fly' ein paar PHP-Befehle oder Einstellungen bearbeiten kann. Jedenfalls für das w3easyCMS...

                      Mal schau'n: Vielleicht lässt sich ja auch noch ein bisschen Unfug mit den 'Gruppenberechtigungen' anstellen...

                      Jedenfalls erstmal vielen Dank für Dein Engagement. Dadurch ist mir einiges klarer geworden. Das ist dann auch schon mal 2 rote Ohren wert...
                      Take it w3easy

                      Kommentar


                      • #12
                        Epilog...

                        So, ich habe nun eingesehen, dass man mit einem einfachen internen PHP Editor bei bestimmten Servereinstellungen nicht in jedem Falle die Dateirechte und schon gar nicht den Dateibesitzer ändern kann. Da kann man sich auf den Kopf stellen und es hilft auch keine Trickserei.
                        Man benötigt in diesen Fällen vielmehr einen FTP Client. Auf meinem Rechner habe ich FileZilla und bin sehr zufrieden damit, aber ich wollte ja eine Lösung haben, die webbasiert ist, die es mir also ermöglicht, auch von unterwegs und von einem fremden Rechner aus tätig zu werden.
                        Einen solchen webbasierten FTP File Manager habe ich nun in dem Tool PHFTP gefunden. Ein hübsches kleines Programm, das genau das leistet, wonach ich gesucht habe - nämlich Dateirechte ändern - und noch einiges mehr.
                        PHFTP | Free software downloads at SourceForge.net
                        Take it w3easy

                        Kommentar

                        Lädt...
                        X