Mittwoch, 3. Januar 2018

WebDAV auf dem Raspberry

Wer einen Telekom Anschluss besitzt oder besaß hat dort einen "Cloud" Speicher von 25 GB - dauerhaft. Dieser beherrscht im Gegensatz zu Google Drive WebDAV.
Auch andere Provider (z.B. 1und1) bieten ihren Kunden Online Speicher mit WebDAV Zugriff.
WebDAV ist eine standardisierte Schnittstelle für die Einbindung als Laufwerk ins Betriebssystem, Linux, Windows - eigentlich können das alle.

Ich will hier kurz zeigen wie der WebDAV Zugriff unter Raspbian eingerichtet wird. Was uns an Vorrausetzungen fehlt, ist das Debian Paket davfs2
sudo apt-get update
sudo apt-get install davfs2
Bei mir brachte die interactive Installation die Frage nach dem Zugriff für alle User, diese bitte mit yes beantworten. Ansonsten kann man die Berechtigung später mit diesem Befehl korrigieren.
sudo dpkg-reconfigure davfs2 # interaktiv
sudo chmod u+s /usr/sbin/mount.davfs # direkt
Unter Linux braucht man einen Ort wo man ein Laufwerk "hin" mounten kann, wir erzeugen also einen Pfad mit entsprechenden Berechtigungen:
sudo mkdir /media/magenta
sudo chmod 777 /media/magenta
Da wir das Login zu Magenta Cloud nicht immer eintippen wollen, werden die Informationen entsprechend abgelegt. Der erste Befehl öffnet den Editor und am Ende der Datei wird die zweite Zeile eingefügt. Der Username ist die 12 stellige Zugangsnummer, das Passwort ist ein extra vergebenes WebDAV Passwort und nicht das Passwort vom Kundencenter.
sudo nano /etc/davfs2/secrets
https://webdav.magentacloud.de user passwort
Nun fehlt noch der mount Eintrag in der fstab, es wird nicht automatisch gemountet, alle User dürfen mounten und es ist beschreibbar:
sudo nano /etc/fstab
https://webdav.magentacloud.de /media/magenta davfs noauto,users,rw 0 0
Jetzt können wir das Laufwerk einbinden und den Inhalt anzeigen. Damit das ohne sudo funktioniert muss der User in der Gruppe davfs2 sein. Die Reihenfolge funktioniert so nicht direkt, der User Pi muss sich neu anmelden.
sudo usermod -aG davfs2 pi
mount /media/magenta
ls -l /media/magenta
umount /media/magenta

Hinweise

Bei wheezy gibt es eine Fehlermeldung, obwohl diese Datei erstmal keine Verwendung findet:
/sbin/mount.davfs: file /home/pi/.davfs2/secrets has wrong permissions
Abhilfe schafft der Befehl:
chmod 0600 .davfs2/secrets
Das WebDAV Laufwerk wird auf diese Art nicht automatisch beim Start angebunden. Das Netzwerk ist zu diesem Zeitpunkt noch nicht verfügbar und der automount über die fstab würde nicht funktionieren. Ist für mich kein Nachteil, weil es jederzeit in einem Script per mount Befehl angebunden werden kann.

Manche Webdav Server unterstützen kein file locking (Fehlermeldung:the server does not support locks). Will man die resultierende Fehlermeldung nicht sehen, hilft ein Eintrag in der Datei davfs2.conf.
sudo sh -c 'echo "use_locks 0" >> /etc/davfs2/davfs2.conf'

 Mehr Sicherheit

Wir haben oben das Konto für den Zugriff auf WebDAV global abgelegt, man kann es auch restriktiver für einen bestimmten Benutzer machen. Anstatt der Ablage des Kontos in der Datei/etc/davfs2/secrets, kann die Information auch sicher vor dem Zugriff andere im User Home Verzeichnis hinterlegt werden (Quelle):
touch /home/$(whoami)/.davfs2/secrets
chmod 0600 /home/$(whoami)/.davfs2/secrets
echo "https://cloud.example.com/webDAV/URL <username> <password>" > /home/$(whoami)/.davfs2/secrets

Zum Nachlesen

Wiki fstab
Wiki rsync
Wiki cp
Wiki inotify
lsynd und Beispiel

8 Kommentare:

  1. danke für die gute Anleitung :-)

    AntwortenLöschen
  2. Danke für den Beitrag, hat mir sehr geholfen und eine Menge Sucherei erspart.

    AntwortenLöschen
  3. Sehr nützlicher Beitrag, nur wie kann ich lässt sich der webdav Speicher automatisch bei jedem Start mounten?

    AntwortenLöschen
    Antworten
    1. Da gibt es sicher viele Möglichkeiten. Ganz global würde ich einen systemd Dienst machen und entsprechend abhängig vom Netzwerk bzw. zeitlich verzögert einrichten. Oder Dienst der es braucht startet es als ExecStartPre. Siehe auch https://heinz-otto.blogspot.com/2020/05/systemd-unit-file.html

      Löschen
  4. Schöne Anleitung, aber leider nicht mehr ganz aktuell.

    Nach Zuordnung des Users zur Gruppe ist ein Relogin nötig.

    Die Domain ist mittlerweile: https://webdav.mediencenter.t-online.de

    Pro Session ist ein Akzeptieren des ZErtifikats nötig und anschießend mounted er trotzdem nicht. Ideen?

    mount /mnt/webdav/magentacloud
    /sbin/mount.davfs: the server certificate has expired
    /sbin/mount.davfs: the server certificate is not trusted
    issuer: Untere Industriestr. 20, Netphen, 57250, Nordrhein Westfalen, T-Systems Trust Center, T-Systems International GmbH, DE
    subject: Darmstadt, Hessen, NSO-DS, Deutsche Telekom AG, DE
    identity: webdav.mediencenter.t-online.de
    fingerprint: b5:b0:38:65:19:42:49:cf:0e:91:13:0a:d4:a1:72:78:a2:62:72:83
    You only should accept this certificate, if you can
    verify the fingerprint! The server might be faked
    or there might be a man-in-the-middle-attack.
    Accept certificate for this session? [y,N] Y
    /sbin/mount.davfs: Mounting failed.

    AntwortenLöschen
    Antworten
    1. Tut mir leid, aber kann ich nicht nachvollziehen. Ich verwende zum Einen WebDav auf mehreren System täglich, da hat sich nichts geändert. Und ich habe zum Anderen gerade eben auf einem Raspberry Pi diese Anleitung Schritt für Schritt kontrolliert und der Zugang funktioniert exakt wie beschrieben!
      Ich bin eher der Meinung die erwähnte Domain ist ein uralt Zugang und schon lange nicht mehr gültig. Kann man einfach im Browser überprüfen.
      Idee: einfach so machen wie beschrieben :-)
      Gruß Otto

      Löschen
  5. vielen dank für diesen tipp hab mein volumio system so mit owncloud verbunden läuft top =)

    AntwortenLöschen