Apache: Probleme mit Rechten bei Skriptausführung
Thomas Bachem
- webserver
Hallo SelfHTML-Community!
Ich gucke hier zwar ehrlich gesagt nur sehr selten vorbei, aber wenn ich eine Frage habe, dann konnte ich bis jetzt immer auf eure Hilfe zählen, und dafür wollte ich mich einmal bedanken :-).
Aber jetzt habe ich wieder eine Frage: Seit kurzem habe ich mir einen eigenen Webserver angemietet und bin jetzt mit der Konfiguration beschäftigt. Auf dem Server läuft Apache.
Nun habe ich ein Problem, dass eigentlich ganz simpel zu sein scheint: Die Einstellung des Users, in dessen Namen die CGI-Skripte ausgeführt werden. Ich selber logge mich als "Thomas" per FTP ein. Komischerweise gibt es Fehler, wenn ich "Thomas" zusätzlich auch als User bei den CGI-Skripten (Perl übrigens) einstelle.
Mein Problem hier: Wenn ich eine Datei hochlade, muss ich sie nicht nur für den Besitzer oder die Gruppe, sondern öffentlich und für jeden lesbar bzw. auch beschreibbar machen, damit meine CGI-Skripte darauf zugreifen können. Und wenn eines meiner Skripte z.B. einen Ordner erstellt, kann ich ihn erstmal im FTP nicht lesen, sondern muss die Rechte oder den Owner für den Ordner erst noch per CGI-Skript mühsam umstellen.
Vorher war ich bei Puretec, und bei denen ging das genauso, wie ich das jetzt auch gerne haben möchte: Wenn ich eine Datei hochlade, genügt es, wenn nur der Owner sie lesen kann, dann können das die Skipte auch und wenn eines der Skripte einen Ordner o.ä. erstellt, soll dieser für mich im FTP als "Thomas" ohne Probleme les- und beschreibbar sein.
Ich stell mich wahrscheinlich einfach zu dumm an, aber ihr könnt mir glauben, dass ich schon einiges versucht habe, bevor ich euch hier mit meiner Frage belästige ;-). Nett wäre nochmal eine kurze Beschreibung, wie ich das so einrichten kann, wie ich es oben beschrieben habe. Ich hab auch Webmin installiert, ich kann das also auch darüber einstellen.
Vielen Dank im Voraus :-)
Apache läuft bei deinem Provider als ein andere User. Meistens ist das "nobody" oder "wwwrun", je nach Einstellung. Dieser User muß dann natürlich Zugriff auf Dateien des Users "Thomas" haben. Entweder sind die welt-les- und -ausführbar, oder beise User sind in der gleichen Gruppe und können sie gegenseitig lesen und ausführen.
Genauso ist es, wenn ein Skript einen Ordner anlegt: Der gehört erstmal nur dem User des Webservers, und seiner Gruppe. Wenn du drauf zugreifen willst, müssen die Rechte entsprechend gesetzt werden, oder die Userzugehörigkeit.
Bei Puretec läuft der Webserver wahrscheinlich als User "Thomas", von daher bist du (via FTP) und der Webserver identisch, es gibt keine Rechtsprobleme. Allerdings ist das möglicherweise problematisch, denn wenn ein Hacker die Kontrolle über den Webserver erlangt, kann er gleich auf alle deine Dateien zugreifen. Das ist für eine Webpräsenz zwar völlig uninteressant, aber für's Intranet, wenn der Webserver auch noch andere Aufgaben erfüllt, ist das relevant.
Als Lösungsvorschlag kann ich nur folgendes anbieten: Lege notwendige Verzeichnisse mit FTP an und ändere die Rechte entsprechend, bevor das Skript es tut, dann hast du es einfacher mit dem Zugriff. Andere Möglichkeiten bestehen kaum, da ich nicht annehme, daß dein Provider den Webserver umkonfigurieren wird - vermutlich laufen da noch mehr Domains drauf.
- Sven Rautenberg
Hallo Sven,
Als Lösungsvorschlag kann ich nur folgendes anbieten: Lege notwendige Verzeichnisse mit FTP an und ändere die Rechte entsprechend, bevor das Skript es tut, dann hast du es einfacher mit dem Zugriff. Andere Möglichkeiten bestehen kaum, da ich nicht annehme, daß dein Provider den Webserver umkonfigurieren wird - vermutlich laufen da noch mehr Domains drauf.
Das ist leider problematisch, da ich vieel verschiedene Ordner anlegen lasse, die ich unmöglich vorher erstellen kann.
Aber das mit der Konfiguration ist kein Problem, denn der Server gehört mir, d.h. ich habe ihn gemietet und vollen Zugriff auf alles.
Grüße
Hallo Sven,
Als Lösungsvorschlag kann ich nur folgendes anbieten: Lege notwendige Verzeichnisse mit FTP an und ändere die Rechte entsprechend, bevor das Skript es tut, dann hast du es einfacher mit dem Zugriff. Andere Möglichkeiten bestehen kaum, da ich nicht annehme, daß dein Provider den Webserver umkonfigurieren wird - vermutlich laufen da noch mehr Domains drauf.
Das ist leider problematisch, da ich vieel verschiedene Ordner anlegen lasse, die ich unmöglich vorher erstellen kann.
Aber das mit der Konfiguration ist kein Problem, denn der Server gehört mir, d.h. ich habe ihn gemietet und vollen Zugriff auf alles.
Grüße
- Thomas
Ok, dann laß den Apache als User "Thomas" laufen, und du kannst deine Zugriffsprobleme schnell gelöst haben.
Die Definition steht in den config-Files von Apache. Die Option ist ausgeschildert, sollte nicht zu übersehen sein. ;)
- Sven Rautenberg