Dateirechte bei Mehruser Webserver

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
sacha
Beiträge: 12
Registriert: 26.07.2002 22:19:00

Dateirechte bei Mehruser Webserver

Beitrag von sacha » 19.01.2003 21:26:34

Hi,

auf meinem Server soll ich als root Vewaltungsaufgaben machen und unter dem user wwwadmin Webseiten anlegen, PHP-Skripte editieren usw.

Dann soll es Benutzer geben, die in einem Verzeichnis, dass ich ihnen zuweise, ihren eigenen Webauftritt anlegen und pflegen koennen.

Dazu habe ich folgende User/Gruppen angelegt:

Benutername:Gruppe(n)
wwwadmin:wwwadmin
kunde1,2,3usw.:wwwusers
wwwdata:wwdata wwwusers (das ist der Apache)

Jetzt haette ich gerne, dass die Dateien und Verzeichniss, die die wwwusers anlegen, bestimmte Zugriffsrechte haben und das diese von den wwwusers nicht geaendert werden koennen.

Ich vermute mal, dass ich dazu der Gruppe wwwusers eine bestimmte umask zuweisen -und die Befehle chmod/chown/umask fuer diese Gruppe sperren lassen muss.

Eigentlich waere es mir auch ganz lieb, wenn die einzelnen wwwuser gar nicht in die Verzeichnisse der anderen User in ihrer Gruppe wechseln koennten. Aber das g+x muss ich ja setzen, damit der Apache in diese Verzeichnisse hineinkommt.

Was gibt es dabei noch zu beachten? Wie kann ich das mit dem sperren bestimmter Befehle fuer einzelne Benutzer/Gruppen regeln? Wie schaffe ich es, dass der Apache in die einzelnen wwwuser-Verzeichnisse wechseln kann, die wwwuser aber nur in ihren eigenen Verzeichnissen bleiben duerfen?

Mir ist schon klar, dass ich mich mit Dateirechten noch intensiver auseinandersetzen muss, aber ueber ein paar Hinweise wuerde ich mich sehr freuen.

Danke und Ciao,

Sacha

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 19.01.2003 22:30:43

Apache hat ein Feature namens UserDir. Damit kannst Du URLs der Form "www.server.net/~user" nach einem bestimmten Schema auf die entsprechenden Home Directories der User mappen. Wenn die URLs eine andere Form haben sollen, kannst Du das mit Aliases regeln (Alias /bla/ /~user1/).

Dann legst Du f"ur jeden Benutzer einen Unix User an, mit der Shell /bin/false, damit die sich nicht mit SSH oder "ahnlich einloggen k"onnen (Alternativ: Login disablen). Die Permissions auf den Home Directories kann man dann entsprechend einstellen (750 user:wwwdata). Das wwwdata als Gruppe ist n"otig, damit der Webserver die Seiten lesen kann. Die User packst Du dann in eine eigene Gruppe ungleich wwwdata)

Das habe ich mir jetzt gerade einfach so ausgedacht, also bitte mit Vorsicht geniessen... andere haben vielleicht noch bessere Ideen...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

SunTzu
Beiträge: 8
Registriert: 20.12.2002 19:43:48

Beitrag von SunTzu » 21.01.2003 11:08:22

Hallo,

Patrick hat Recht, das ist genau der Mechanismus im Apache, der viele Nutzer auf einem Webserver ermöglicht. Alle Hoster machen es genau so. Die Dateien in den ~-Verzeichnissen, normalerweise im Verzeichnis public_html müssen noch nicht einmal dem Apache gehören, sie müssen nur für andere les- und ausführbar (bei Verzeichnissen) sein, also mit
chmod -R o+rx .
im public_html-Verzeichnis das einstellen, die Webseiten sind dann - nach Aktivierung von mod_userdir - über
http://www.name-des-servers.tld/~username
erreichbar. Siehe dazu auch:
http://httpd.apache.org/docs/mod/mod_userdir.html

Viel Spaß,

Dominik

Antworten