Webdav unter Ubuntu als festes Laufwerk einbinden

There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.


Welcher FTP-Nutzer kennt das nicht: Der angemietete Webspace ist mit vielen Dateien überfüllt und muss nun endlich aufgeräumt werden. Doch auch mit einer schnellen Internetverbindung ist das nicht so schnell erledigt. Ursache ist hier das FTP Protokoll, das für jede Datei, egal ob gelöscht oder hochgeladen werden soll, eine Anfrage starten muss bevor die gewünschte Operation überhaupt ausgeführt wird. Und das kostet natürlich viel Zeit ;-(. Abhilfe schafft hier WEBDAV. Es basiert auf dem TCP Protokoll und erlaubt das Löschen, Kopieren und Erzeugen von mehreren Dateien in einer "Anfrage". Weiterer Vorteil, vor allem für Administratoren: Es läuft ebenfalls auf Port 80, d.h. zur Bereitstellung von Dateien muss kein zusätzlicher Port freigegeben werden (z.B. FTP benötigt Port 21). Weitere Informationen zu Webdav gibts hier Mit einer entsprechenden Internetanbindung kann die Webdav Ressource wie ein vollwertiges Laufwerk eingebunden werden. Und wie das unter Ubuntu geht, erfahrt ihr jetzt:

Zuerst müssen folgende Pakete installiert werden

sudo apt-get install ca-certificates davfs2

Sollten die Pakete nicht verfügbar sein, liegt das wo möglich an deaktivierten Quellen in der sources.list des Paketmanagers. Dazu folgendes in der Konsole eingeben:

sudo nano /etc/apt/sources.list

und die mit # (Raute) auskomentierten Quellen durch Entfernen der Raute aktivieren z.B. Vorher:

#deb http://de.archive.ubuntu.com/ubuntu/ intrepid universe

Nachher:

deb http://de.archive.ubuntu.com/ubuntu/ intrepid universe

Als nächstes muss jedem Nutzer das Einbinden des Laufwerks erlaubt werden. Dafür muss in Linux das SUID-Bit gesetzt werden.

sudo chmod u+s /usr/sbin/mount.davfs

Das Setzen des Flags ermöglicht es, als Nichtadmin (root) einen root-Befehl auszuführen. Weiterhin muss auch das Sticky-Bit für mount.davfs gesetzt werden (weiterer Informationen zum Sticky-Bit gibts hier)

sudo chmod 1775 /var/run/mount.davfs

Als nächstes muss der Webdav-Dienst unter Linux konfiguriert werden. Die dafür zur Verfügung stehenden Einstellungen findet man in der davfs2.conf. Nach dem Öffnen von

sudo nano /etc/davfs2/davfs2.conf

sucht man sich die folgenden Zeilen

# General Options
# ---------------

# dav_user        davfs2            # system wide config file only

Unter der Zeile mit dav_groups wir folgendes eingetragen:

dav_group       users

Die Gruppe des Webdav-Dienstes brauchen wir nicht zu ändern (auch nicht durch Entfernen der Raute aktivieren). Dann muss der aktuelle Nutzer zu den Gruppen davfs2 und users hinzugefügt werden. Das erreichen wir mit folgenden Befehlen.

sudo adduser "BENUTZERNAME" davfs2
sudo adduser "BENUTZERNAME" users

Nun müssen die Login-Daten für den Webdav-Account mit beschränkten Leserechte im System hinterlegt werden. Dies geschieht global für alle Systemnutzer in der Datei /etc/davfs2/secrets. Die Zugangsdaten werden nach folgendem Schema eingegeben:

# Allgemein
"WebDAV-URL" "login" "passwort"
# Zum Beispiel
http://pfad/des/webdav/anbieters  WebDavUserLoginName  Passwort

Anschließend muss die Datei noch in den Zugriffsrechten eingeschränkt werden:

sudo chmod 600 /etc/davfs2/secrets

Zuletzt muss in der fstab noch der Mountpunkt für Webdav festgelegt werden. Nach der Eingabe von

sudo nano /etc/fstab

folgendes am Ende der Datei einfügen:

# Allgemein
htto;//"webdavurl" "mountpunkt" davfs user,noauto 0 0
# Allgemein mit verschlüsselter Übertragung
https://"webdavurl" "mountpunkt" davfs user,noauto 0 0
# Zum Beispiel
https://mediacenter.gmx.net /media/webdav davfs noauto,user,rw 0 0

In der Konsole kann dann die Webdav-Ressource bei Bedarf eingebunden werden (und das natürlich ohne root-Rechte):

#Zum Beispiel
mount /media/webdav

Der Mountpunkt muss zuvor natürlich erstellt werden.

sudo mkdir /Pfad/zum/mount/Punkt

Jetzt sollte der Webdavordner in das Dateisystem von Ubuntu eingebunden sein.