Dateirechte
Daniel
- webserver
0 Andres Freund0 Tobias
Hallo Leute,
also stellen wir uns mal folgendes vor:
Im /Home Verzeichnis befinden sind 100 Kundendomains. Jeder Kunde hat sein eigenes Verzeichnis.
Dem Kunden stellt man ssh zur Verfügung und schwups hat er auf einmal Zugriff auf alle Datei der anderen Kunden zumindest Lesezugriff... wie kann man soetwas verhindern und ein gutes Konzept dafür austüfteln, dass jeder Kunde zwar sein Verzeichnis hat, aber andere nicht in das Verzeichnis des anderen Kunden wechseln dürfen... gibt es dafür Konzepte? Wenn ja, dann lasst sie herwachsen... würde mich nämlich interessieren, wie man soetwas einrichtet...
Danke
Daniel
Hi,
Wenn ja, dann lasst sie herwachsen... würde mich nämlich interessieren, wie man soetwas einrichtet...
Ich würde das so machen, wenn ich es machen würde, was ich mangels Erfahrung sicher nicht so bald machen werde, dass der Apache bei den einzelnen vhosts für die User, über suexec unter deren uid läuft. Daher hat ein Script dass vom Apache gestartet wird, nicht die gleichen Rechte, wie sie der Apache hätte. Daher können die User nicht auf die Homedirs der anderen zugreifen. Als nächstes würde ich jedem User nur Rechte auf sein HomeDirectory und auf nichts anderes, was nicht umbedingt notwendig ist, geben.
Falls du das wirklich machen willst würde ich davor noch viel lesen und üben, da man viel falsch machen kann. Ausserdem wäre ich bei der Konfiguration von suexec besonders vorsichtig, da dabei leicht gravierende Fehler gemacht werden können.
Grüße Andres Freund
Servus,
Hallo Leute,
also stellen wir uns mal folgendes vor:
Im /Home Verzeichnis befinden sind 100 Kundendomains. Jeder Kunde hat sein eigenes Verzeichnis.
Gut so.
Dem Kunden stellt man ssh zur Verfügung und schwups hat er auf einmal Zugriff auf alle Datei der anderen Kunden zumindest Lesezugriff... wie kann man soetwas verhindern und ein gutes Konzept dafür austüfteln, dass jeder Kunde zwar sein Verzeichnis hat, aber andere nicht in das Verzeichnis des anderen Kunden wechseln dürfen... gibt es dafür Konzepte? Wenn ja, dann lasst sie herwachsen... würde mich nämlich interessieren, wie man soetwas einrichtet...
Mein Gedanke wäre: Richte für jeden Kunden eine eigene Gruppe eine - von mir aus web-kdX. Und nun richte die Verzeichnisse so ein, dass die Gruppenrechte jeweils nur für den jeweiligen Kunden gelten, und trage den User, unter dem der Apache läuft, in sämtliche neuen Gruppen ein. Die Verzeichnisse müssen natürlich auch Lese- und ggf. Schreibrechte für die Gruppen gesetzt haben, aber _keinerlei_ Rechte für "others".
Ergebnis: Kunde 1 kann seine Verzeichnisse lesen (Leserechte für web-kd1), der Apache auch (ist ja Mitglied der Gruppe), wenn er aber versucht, in das Verzeichnis des Kunde 2 zu wechseln, darf er nicht mehr lesen, denn er ist ja weder Kunde 2 noch Mitglied in der Gruppe web-kd2 (im Gegensatz zum Server).
Das Ganze ist zwar etwas Aufwand, müßte aber so funktionieren.
HTH:
Tobias
Hi,
Ergebnis: Kunde 1 kann seine Verzeichnisse lesen (Leserechte für web-kd1), der Apache auch (ist ja Mitglied der Gruppe), wenn er aber versucht, in das Verzeichnis des Kunde 2 zu wechseln, darf er nicht mehr lesen, denn er ist ja weder Kunde 2 noch Mitglied in der Gruppe web-kd2 (im Gegensatz zum Server).
Das Problem ist, dass dann der Kunde einfach über ein Script, das ja normalerweise unter der uid des Apache läuft, auf die Daten aller anderen User ohne Probleme zugreifen kann. Daher würde ich eher zu der Lösung von mir mit suexec raten.
Grüße Andres Freund
Mein Gedanke wäre: Richte für jeden Kunden eine eigene Gruppe eine - von mir aus web-kdX. Und nun richte die Verzeichnisse so ein, dass die Gruppenrechte jeweils nur für den jeweiligen Kunden gelten, und trage den User, unter dem der Apache läuft, in sämtliche neuen Gruppen ein.
Richtiger Ansatz, allerdings gibt's unter Linux nur ein Problem: Ein Benutzer kann nur in einer begrenzten Anzahl von Gruppen Mitglied sein. Wer, wie so ziemlich alle Wohnzimmerhoster und Reseller, eine 08/15-Distribution benutzt (benutzen muß), wird damit schon nach fünf oder zehn Kunden an die Grenzen stoßen (ich habe den Wert nicht im Kopf).
Aber für einen fähigen Administrator ist es natürlich keine Schwierigkeit, dies zu ändern :)
Gruß,
soenk.e
Moin,
Richtiger Ansatz, allerdings gibt's unter Linux nur ein Problem: Ein Benutzer kann nur in einer begrenzten Anzahl von Gruppen Mitglied sein. Wer, wie so ziemlich alle Wohnzimmerhoster und Reseller, eine 08/15-Distribution benutzt (benutzen muß), wird damit schon nach fünf oder zehn Kunden an die Grenzen stoßen (ich habe den Wert nicht im Kopf).
henryk@gleam henryk $ grep NGROUPS_MAX /usr/src/linux/include/linux/limits.h
#define NGROUPS_MAX 32 /* supplemental group IDs are available */
Aber für einen fähigen Administrator ist es natürlich keine Schwierigkeit, dies zu ändern :)
Ack. Aber dann nimmt man wohl sowieso besser File Access Control Lists die als Kernel-Patch schon länger verfügbar sind und AFAIK bei neueren SuSEn sogar defaultmäßig eingebunden werden. Damit kann man den Dateien dann selber quasi beliebige Berechtigungen für beliebige User oder Gruppen geben.
Solaris (wie es auch bei meinem Hoster verwendet wird) hat das sowieso.