Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

www-run oder FTP-user für File-Rechte nutzen

Hallo zusammen,

ich brauche mal eine detailierte Aufklärung, weil ich es irgendwie nicht verstehe...

Mein Problem: Webserver mit PHP greifen lokal auf Verzeichnisse und Dateien zu. Dort möchte ich als FTP-User aber beim Webhoster auch drauf zugreifen und diese Verändern.
Zusätzlich möchte ich natürlich auch die Daten gegenüber dritten geschützt haben.

Ich kann jetzt per FTP Dateien hochladen (PHP-Quellcode, Apache-Webserver beim Webhoster, usw.). Jetzt gehören die Daten der Gruppe FTP_USER und dem Benutzer FTP_USER. Gruppen und Benutzer einrichten darf ich vom Webhoster aus nicht!

Der PHP Quellcode möchte jetzt auf Dateien zugreifen was nicht geht. Schließlich läuft der Webserver auf dem User www-run (Gruppe www-run).

Ich kann zwar Verzeichnisse jetzt nem anderen Benutzer zuweisen, aber dann kann jeweils der andere nicht mehr dran :(

Wenn ich jetzt alles auf www-run umsetze, dann könnten aber doch auch andere User, die auf dem gleichen Server Webhosting betreiben würden, dort auch drauf zugreifen, wenn sie den direkten Pfad dazu eingeben würden.

Somit stellt sich die Frage nach der Datensicherheit. Wenn die Daten dem FTP_User gehören, dann wären sie ja gegen fremden zugriff geschützt, wenn man nicht grad 777 als Recht vergeben hätte.
Gehören die Dateien dem User www-run kann ein FTP-User aber auch keine Daten mehr hochladen (z.B: Updates per FTP einspielen oder sowas).

Irgendwie hab ich da ein Logik_Problem, bzw. eigentlich hab ich das mit den Rechten glaub ich verstanden, nur bekomm ich nicht beide User unter einen Hut.

Was macht man in einem solchen Fall?
Wie sicher sind Daten als www-run-Besitzer?
Veränderungen an den Laufzeitumgebungen von apache kann ich leider nicht vornehmen.

Hab ich irgendwie einen Denkfehler, oder ist das Problem nicht lösbar?


Antworten zu www-run oder FTP-user für File-Rechte nutzen:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Zitat
eigentlich hab ich das mit den Rechten glaub ich verstanden,
Nee, denke eher nicht.

Erstmal: der Webserver ist ein Systembenutzer und hat keine Loginshell.

Zum zweiten: schau dir mal die Unterschiede zwischen Lesen, Schreiben und Ausführen an und überlege Dir, wer welche Rechte an welcher Datei wann unbedingt brauch. Übrigens kann man Rechte temporär zum Bearbeiten ändern und hinterher wieder restriktiver setzen.  Mehr kann man hier dazu so nicht sagen, wenn hier nur pauschal von "Dateien" die Rede ist -> unter Linux ist alles eine Datei, auch Verzeichnisse, Geräte usw.

Das hier:
Zitat
Gehören die Dateien dem User www-run kann ein FTP-User aber auch keine Daten mehr hochladen (z.B: Updates per FTP einspielen oder sowas).
stimmt nicht so pauschal, bei Updates stimmt es teilweise (Frage ist Update: wie, von was?), aber um dazu eine Aussage zu treffen, ist die Ansage "Dateien" zu schwammig.

Für detaillierte Ausführen zu Rechten unter Unix/Linux gibt's gute Erklärungen/Anleitungen im Netz, ein ausführlicher Grundkurs dazu sprengt den Rahmen eines Forums und "das Rad muß auch nicht neu erfunden werden".
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ok, dass www-run ein Benutzer ohne Loginshell ist, kann ich ja verstehen.

d.h. aber doch auch, dass JEDER www-run auf die Daten der anderen Webhosting-Bereiche zugreifen könnte, oder?

somit wäre es doch so, dass mit einem Fehler in der Konfiguration des Webservers oder aber auch durch ein PHPscript, welches Zugriff auf die Verzeichnis-/Files auf dem htdocs hat, auch Zugriff auf die www-run-Daten eines anderen Users haben könnte. Die Daten gehören ja schließlich auch dem www-run.

Oder muss ich davon ausgehen, dass die Speicherbereiche für die einzelnen Webhosting-Bereiche getrennt geschützt werden... sprich: der www-run von User1 kann nicht auf die Files von www-run von User2.
 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Es gibt nur einen User www-run auf dem Server.
Da dieser wie gesagt keine Loginshell hat kannst weder Du noch ein anderer sich als www-run einloggen und als www-run damit Unfug treiben (abgesehen von eventuellen Sicherheitslücken, aber das ist ein anderes Thema )

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ich denke er meint eher Zugriffe über PHP-Scripte.

Darum sollte sich aber normalerweise der Hoster kümmern. Eigentlich muss dieser den Webspace so abgrenzen, dass der User, der Scripte auf Webspace 1 ausführt, mit diesen Scripten keinerlei Zugriff auf Dateien von Webspace 2 hat. Dies geht unter Linux wiederum entweder über unterschiedliche Benutzernamen oder über unterschiedliche Ordnernamen, die so angelegt sind, dass man diese nicht erraten kann. Dazu muss es dem www-run Benutzer natürlich auch untersagt sein, sich in dem Ordner in dem sich die einzelnen Webspace-Ordner befinden den Ordnerinhalt anzeigen zu lassen.

Wenn es Deinen Hoster schon länger als ein paar Monate gibt, solltest Du davon ausgehen, dass er für eine einwandfreie Trennung gesorgt hat. Sonst gäbe es ihn schon nicht mehr.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Vielen Dank MBGucky,

genau solche Bedenken hatte ich und es beruhigt mich, dass du mir den Hinweis gegeben hast mit dem alten Hoster ;) Auch wenn man sich bzgl. der Sicherheit nicht immer sicher sein darf!

Aber ich verstehe deine Beschreibung nicht so ganz.

Mit Linux kann ich nur die Berechtigungen rwx verteilen und das für Besitzer, Gruppe und sonstige.

Ich nehme mal ein Beispiel... vielleicht wird es damit für mich einleuchtender.

Benutzer 1 & Benutzer 2:
Root-Verzeichnisse:
/home/benutzer1
/home/benutzer2

Rechte Benutzer1:
/home/benutzer1 rwxrwx--- (Owner: Benutzer1, Gruppe: Benutzer1)
/home/benutzer2 rwxrwx--- (Owner: Benutzer2, Gruppe: Benutzer2)

Benutzer1 kann also nicht auf /home/benutzer2 zugreifen und die Files anzeigen lassen, schreiben oder ausführen und Benutzer2 kann es auf /home/benutzer1 nicht.

Jetzt ist wwwrun ein weiterer Benutzer, der via Apache / PHP gestartet wurde.
Der muss jetzt aber auf Verzeichnisse
/home/benutzer1/phpscripte (das Webverzeichnis von Benutzer1) und /home/benutzer2/html_und_php (Webverzeichnis von Benutzer2) zugreifen dürfen.... eben weil die Scripte dort schreiben dürfen.

ist das soweit richtig?
Wie verhindere ich denn, per Script von Benutzer2's Webspace aus, ein Script auf /home/benutzer1/phpscripte ausgeführt werden kann. Die Rechte sind doch freigegeben und eigentlich gilt dafür dann rwxrwx--- für wwwrun.

Ich denke, wie SQL-Freak schon erwähnte, gibt es dafür genug Links. Wonach sollte ich dabei suchen oder kennst evtl. sogar nen guten Link dazu (am besten in deutsch, dann gibt es wenigstens keine Übersetzungsfehler :) ).

Ansonsten danke ich dir für die Antwort.

Gruß


 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

www-run ist der Webserver selbst und dieser muss zwingend! zumindest lesend auf die Dateien zugreifen dürfen!

Gemeint sind dann eher in diesem Fall wohl die User web0, web1, benutzer1 usw (je nach Hoster)

Das ist ein bedeutender Unterschied.
Sowas meinte ich mit "schwammig".  ;D;D;D 

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Wenn der Benutzer der selbe ist, bleibt wie gesagt nur die Möglichkeit, die einzelnen Webspace-Ordner mit zufälligen Buchstaben-Zahlenkombinationen zu benennen. Dann kann der www-run User so viele Rechte haben wie er will. Wenn er nicht weiß, wo er andere Dateien findet, kann er nicht drauf zugreifen.

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Nein, der user www-run findet alles, was sich unterhalb der Document-Root des Webservers befindet und die Dokumente ihm gehören bzw er mindesten lesende Rechte drauf hat, egal, ob die Ordner wilde, zufällige Namen tragen - und das muss er auch, sonst können die Dokumente, Scripte, Bilder usw nicht dargestellt werden.

Das ist richtig so und auch kein Problem.
Andere User haben trotzdem keinen Zugriff.


Zitat
Benutzer1 kann also nicht auf /home/benutzer2 zugreifen und die Files anzeigen lassen, schreiben oder ausführen und Benutzer2 kann es auf /home/benutzer1 nicht.

Richtig!

Zitat
Jetzt ist wwwrun ein weiterer Benutzer, der via Apache / PHP gestartet wurde.

Und hier liegt der Fehler - wwwrun ist der Webserver selbst! und hat nix, aber auch garnix mit den von Dir angelegten Usern zu tun!

Zitat
Wonach sollte ich dabei suchen
Linux Rechte- und Gruppen-Verwaltung
Linux Systembenutzer
Apache-Doku (speziell auch virtuelle Hosts)

Allerdings sind das - wie Gucky schon sagte, Dinge um die sich der Hoster kümmert und Gründe warum wir Laien immer wieder abraten, selber Server ins Netz zu stellen.  
« Letzte Änderung: 15.11.11, 09:26:00 von SQL-Freak »

« Videoschnitt wie bei YoutubeProbleme mit Browsern bzgl. jQuery »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
PHP
PHP steht für Personal Home Page und ist eine Skriptsprache die meist verwendet wird zur dynamischen Erzeugen von Internetseiten. PHP zeichnet sich durch die weite D...

Dateiendungen
Die Dateiendung, auch Dateinamenerweiterung, Dateierweiterung oder einfach "Endung" genannt, besteht aus meistens drei oder vier Buchstaben und wird mit einem Punkt an de...

Dateiendung
Die Dateiendung ist ein Teil des Dateinamen und zeigt das Dateiformat an. Klassisch war die "8.3" Regelung, nach der der Dateiname under MS DOS 8 Zeichen lang sein durfte...