Webdav im Dateisystem mit verschiedenen Usern

Alles, was den Apache betrifft, kann hier besprochen werden.

Webdav im Dateisystem mit verschiedenen Usern

Postby tacklemoe » 27. September 2009 09:16

Hallo zusammen,

vorab mein Setup:
Ich habe einen Apache 2.2.11 unter Linux zusammen mit PHP über mod_fcgi laufen. Jeder User hat ein eigenes Verzeichnis mit seinem eigenen Linux User und einer zugehörigen Quota. Bei jedem Aufruf eines Scriptes wird entsprechend ein Prozess mit den Rechten des jeweiligen Users gestartet.
Das ganze klappt soweit hervorragend, ich brauche nun aber auch einen Webdav Support für dieses Setup.

Leider bin ich beim Googeln nicht wirklich fündig geworden, ich finde immer nur Howtos wie man verschiedene User authentifizieren kann, der Apache selbst läuft dann aber immer unter dem gleichen User/Group und schreibt demnach ins Dateisystem auch unter selbigem. Tatsächlich brauche ich aber eine Lösung bei dem vermutlich der jeweilige Apache Webdav unter dem jeweils zugehörigen/eingeloggten User läuft und dann mit dem korrekten User auf das Dateisystem zugreift damit die Dateien auch immer dem richtigen User gehören und die Quotas eingehalten werden können.

Hat jemand sowas schon umgesetzt und Tipps zur Einrichtung?

Gruß und danke
tacklemoe
tacklemoe
 
Posts: 5
Joined: 27. September 2009 08:58

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby Nobbie » 27. September 2009 10:12

tacklemoe wrote:Jeder User hat ein eigenes Verzeichnis mit seinem eigenen Linux User und einer zugehörigen Quota. Bei jedem Aufruf eines Scriptes wird entsprechend ein Prozess mit den Rechten des jeweiligen Users gestartet.


Dann sehe ich das Problem nicht, wenn Du das schon gelöst hast. Mit WebDAV kommen doch nur noch neue HTTP Requesttypen (PUT) dazu, aber die Benutzersteuerung hast Du doch vorgelagert.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby tacklemoe » 27. September 2009 11:05

Hmm der Apache läuft als apache:nobody. Wenn ich jetzt noch Webdav zufüge wird eine Datei doch auch unter genau diesem User:Group angelegt?
Die mod_fcgi / suexec Lösung greift ja nicht bei Webdav Requests sondern nur bei Aufrufen von PHP / Perl.
tacklemoe
 
Posts: 5
Joined: 27. September 2009 08:58

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby Nobbie » 27. September 2009 11:32

Das ist natürlich richtig, ich hatte mich schon gewundert, wie Du das User/Group Problem in den Griff bekommen willst.

Das wird auch mit WebDAV (resp. auf Apache Ebene) nicht gehen, weil eben Apache unter einer einzigen UserID ausgeführt wird (egal ob Nobody oder sonstwas).
Dann müßtest Du allenfalls in einer sog. "chroot"-Umgebung arbeiten (pro User ein kompletter Apache), aber das ist eigentlich auch nur die halbe Miete - und dann kannst Du auch gleich virtuelle Server (Virtuozzo) bauen und das ist auch genau die Standardlösung, wie Provider sie anbieten.

Dein Problem ist technisch identisch mit der Standardanforderung an Provider, dass jeder User sein eigenes Terrain hat - und die Lösung heißt "virtueller Server".
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby tacklemoe » 27. September 2009 11:35

Ich halte es für unrealistisch das die großen Provider dieses Problem so gelöst haben (ein Apache Prozess pro User).
Gedanklich bin ich im Moment am überlegen ob man nicht was mit default ACLs lösen kann.

Machbar ist es, sonst gäbe es nicht bei allen größeren Providern Webdav und Co :)
tacklemoe
 
Posts: 5
Joined: 27. September 2009 08:58

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby Nobbie » 28. September 2009 10:22

tacklemoe wrote:Ich halte es für unrealistisch das die großen Provider dieses Problem so gelöst haben (ein Apache Prozess pro User).


Was heißt "unrealistisch"? Es ist der Realismus pur - anders geht es doch gar nicht, wenn Du Quotas vergeben willst. Und bei vServern bekommst Du nicht nur Deinen eigenen Apache Prozess, sondern einen vollständigen (virtuellen) Server. Mit komplettem (eigenem) Betriebssystem.

P.S.: >Machbar ist es, sonst gäbe es nicht bei allen größeren Providern Webdav und Co

Und wer sagt, dass das mit einem zentralen Apacheprozess gelöst ist? Bei allen (mir bekannten) Anbietern von WebDAV Platz muss man sich am Anfang einloggen - und damit wird eine UserID ermittelt und unter dieser UserID wird irgendein Prozess gestartet.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby Nobbie » 28. September 2009 13:05

Ich habe übrigens einen interessanten Link gefunden zum Thema:

http://www.needful.de/docs/projekte/webdav-quota/

Das wäre zwar nicht das Linux-Quota (von daher leider eine uneinheitliche Verwaltung) aber immerhin mehr als nichts.

Dann habe ich noch überlegt (ich habe da noch nie etwas mit gemacht), ob man ggf. mit Hilfe von mod_actions und der Script-Direktive die Methoden PUT und GET auf ein CGI-Script mappen kann (da müßte man mal mit experimentieren), wenn das geht, kann ja via mod_fcgid dieses Script ausgeführt werden und dann hat man ein echtes Quota. Ich weiß eben nicht, wieviel Aufwand es bedeutet (wenn es überhaupt geht), die WebDAV Funtkionalität auf diese Weise abzubilden.

Siehe http://httpd.apache.org/docs/2.2/de/mod ... tions.html
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby tacklemoe » 28. September 2009 17:02

Sorry, mein Fehler -> ich hab mich da unklar ausgedrückt :)
Ein Apache Prozess der für den jeweiligen User gestartet wird wenn der eine Webdav Verbindung aufbaut haut sicher hin. Ich dachte an einen Apache Prozess für jeden User gestartet bereithalten.

Die Lösung für mein Problem scheint zu sein den Apache als root mit mod_ruid laufen zu haben:
http://websupport.sk/~stanojr/projects/mod_ruid/

Damit läuft der "Webdav Apache" mit dem jeweils korrekten Linux User und die Dateien/Verzeichnisse erhalten entsprechend die korrekten Rechte.

Der Tipp mit dem Webdav Quota Support ist eine nette Idee, konsequenter scheint die Lösung mit mod_ruid zu sein -> Hat man für einen Linux User sowieso schon Quotas hinterlegt kann selbiger über Webdav auch nicht mehr als seine Quota schreiben :)
tacklemoe
 
Posts: 5
Joined: 27. September 2009 08:58

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby Nobbie » 29. September 2009 10:24

Meine Standardfrage muss ich trotzdem stellen: wieso WebDAV - warum nicht FTP? Wenn ich sehe, was für ein Overhead da betrieben wird, für eine Funktionalität, die eher schlechter als FTP ist (und auch die vorhandenen FTP Clients den WebDAV Clients überlegen sind), verstehe ich den Sinn nicht.
Nobbie
 
Posts: 13170
Joined: 09. March 2008 13:04

Re: Webdav im Dateisystem mit verschiedenen Usern

Postby tacklemoe » 29. September 2009 20:02

*seufz* :|
Ginge es nach mir würde ich ausschließlich (S)FTP und SCP nutzen. Leider gibt es Kunden die durch verschiedene "Fachzeitschriften" (Bild) und Gruppenzwang (bieten doch alle anderen auch an, meine Bekannten nutzen das auch) der Meinung sind Webdav haben zu müssen.

Seit Tagen versuche ich nun meinen Kunden ohne Erfolg davon zu überzeugen das er durch Webdav kaum/keine Vorteile hat. Aber heute hat's geklappt: Webdav mit Windows eigenen Bordmitteln hat ja nie gut funktioniert, das K.O. Kriterium war aber mein Hinweis auf "verschlüsselte Verbindung", die zwar serverseits per SSL machbar ist aber Windows selbst in Version 7 voll aussteigen lässt :lol:

Kurz: Ich hab wieder was neues gelernt (wie setze ich einen Apache mit Webdav und vernünftigen Permissions ein) und mein Kunde das Webdav Blödsinn ist. Nicht das ich das nicht schon vor Tagen gesagt hätte ...
tacklemoe
 
Posts: 5
Joined: 27. September 2009 08:58


Return to Apache

Who is online

Users browsing this forum: No registered users and 27 guests