| WebDAV-Server mit Linux |
|
|
|
|
Vereinfacht gesagt kann man WebDAV als schnelle und unkomplizierte Lösung betrachten, wenn man Dateien (oder ganze Verzeichnisstrukturen) netzwerkbasiert bereitstellen möchte. Die Vorteile liegen in der Natur von WebDAV: Es handelt sich hierbei um eine Erweiterung des HTTP-Protokolls, das beispielsweise zum Einsatz kommt, wenn man Internetseiten aufruft. Beispielsweise sind Firewalls darauf eingestellt, ein- und ausgehenden Datenverkehr über den HTTP-Port 80 zuzulassen, also müssen keine Änderungen an Firewalls eingestellt werden. Außerdem ist ein WebDAV-basierter Ordner recht zügig online gestellt. Wie das unter Linux klappt, erkläre ich im Folgenden. Meine Anleitung ist für die Installation unter Ubuntu (und damit auch unter Debian) ausgelegt, aber SuSE, Fedora und alle anderen Distributionen werden ähnliche Wege anbieten.
Installation des DienstesDie Infrastruktur für WebDAV wird von einem Apache-Server bereitgestellt, aktuell (wir schreiben das Jahr 2009) sollte man mindestens Version 2 des Apache verwenden. Da ich gerne mit der Konsole arbeite, öffne ich diese mit Alt+F2 und schreibe in das neu öffnende Fenster gnome-terminal Nun erhalte ich eine Konsole mit Benutzerrechten. Diese stelle ich für die weiteren Schritte um mit dem Befehl sudo su Als nächstes wird das Apache2-Paket installiert mit apt-get update && apt-get install apache2 Anschließend wird der DAV-Dienst zum ersten Mal gestartet, Fehlermeldungen können ignoriert werden a2enmod dav
Erstellen eines virtuellen HostsIn diesem Abschnitt wird ein Verzeichnis für die dauerhafte Bereitstellung im Netzwerk eingerichtet. Virtuelle Hosts werden in vielen Lehrbüchern im Verzeichnis /var/www untergebracht. Das liegt daran, dass in einem linuxbasierten System unter /var variable (also veränderliche) Dateien abgelegt sind. Ich beginne also mit dem Anlegen der Verzeichnisstruktur, in der ich deutlich sehen möchte, welche Daten nun im Netzwerk sichtbar sind und welche nicht: mkdir -p /var/www/web/dav Der zweite Befehl weist dem Benutzer www-data den neu angelegten Ordner als sein Eigentum zu. Warum? Der fertige Apache-Server lässt im Linux-System einen Hintergrunddienst ("Daemon") laufen, der ständig prüft, ob jemand den Inhalt des Verzeichnisses sehen oder bearbeiten möchte. Kommt eine Anfrage, steuert der Daemon die weiteren Schritte: Authentifizierung (darf der das?) und Zugriffsarten (Lesen, Ändern, Löschen). Dieser Daemon outet sich im System als Anwender "www-data" und muss, um vernünftig im Verzeichnis arbeiten zu können, entsprechende Rechte an den betreffenden Ordnern und Dateien haben. Als Eigentümer des gesamten Ordners und den entsprechenden Eigentümerrechten kann der Daemon alle Operationen ausführen, die er für nötig hält. Nun wird der Ordner dem virtuellen Host des Apache-Servers bekanntgemacht. Ich benutze für solche Dinge gerne den Editor gedit, es funktioniert aber auch mit jedem anderen Editor: gedit /etc/apache2/sites-available/default In der Datei wird folgende Eintragung vorgenommen:
Zugriffsberechtigungen vergebenDer Ort ist nun bekannt, als nächstes muss beantwortet werden: Wer darf denn überhaupt auf die Daten zugreifen? Möglicherweise soll nicht jeder Benutzer Dateien anlegen oder löschen dürfen. Dazu wird nun eine Passwortdatei angelegt oder erweitert: htpasswd -c /var/www/web/passwd.dav Benutzer Anstelle von Benutzer muss ein Benutzername eingegeben werden. Es folgt sofort die Frage nach einem neuen Passwort, mit dem sich der Benutzer künftig an der WebDAV-Freigabe anmelden kann. Auch die Zugriffsrechte an der Passwort-Datei müssen einmalig vergeben werden. Hier wird root (der Linux-Administrator) zum Eigentümer sowie die Gruppe www-data (der auch der Apache-Daemon angehört). Root darf die Datei lesen und verändern, Gruppenmitglieder von www-data dürfen die Datei nur lesen: chown root:www-data /var/www/web/passwd.dav Danach muss die Datei aus dem letzten Schritt erneut bearbeitet werden. gedit /etc/apache2/sites-available/default Hier der Inhalt der Datei, die neuen Zeilen sind fett markiert:
Der Editor wird nun wieder beendet und anschließend der Apache-Server neu gestartet, damit die geänderte Konfigurationangewendet wird /etc/init.d/apache2 reload
TestenIm letzten Schritt wird der WebDAV-Server getestet. Da Linux nicht per default mit WebDAV-Freigaben umgehen kann, ist ein WebDAV-Client nötig. Cadaver ist ein solcher Client. Dieser lässt sich nachträglich installieren mit apt-get install cadaver Sollte das nicht funktionieren: gedit /etc/apt/sources.list starten und im Editor das "#" vor den Zeilen deb http://archive.ubuntu.com jaunty main und deb http://archive.ubuntu.com jaunty universe entfernen, speichern, Editor schließen und den Befehl noch einmal ausführen Anschließend gebe ich in die Konsole den Befehl zum Testen ein: cadaver http://localhost/webdav Es folgt die Abfrage eines Benutzernamens und eines Passworts. Hat man diese korrekt eingegeben, kann man den Client mit quit wieder beenden. Sollten Fehler auftauchen, wird das mit vermutlich an einer falsch abgetippten Konfigurationsdatei liegen.
LinksHeise Netze: WebDAV mit Apache HowToForge: How to set up WebDAV with Apache2 on Ubuntu 8.10 |


