Tipps zum Arbeiten mit Webdav

From revampedia

Apache2 für Webdav konfigurieren

Webdav ermöglicht Lese- und Schreibzugriff auf die Dateien in einem Webserver-Verzeichnis über die http- bzw. https-Standardports 80 bzw. 443. Siehe auch https://de.wikipedia.org/wiki/WebDAV

Grundkonfiguration

Zunächst müssen die Webdav-Module, die bei Apache2 bereits standardmässig im Verzeichnis /etc/apache2/mods-available vorhanden sind, aktiviert werden. Mit
#  ls -l /etc/apache2/mods-available/*dav*
werden die vorhanden Module angezeigt.
Anschliessend wird für jede gefundene Datei ein gleichlautender symbolischer Link im Ordner /etc/apache2/mods-enabled gesetzt:
#  cd /etc/apache2/mods-enabled
#  ln -s ../mods-available/dav.load
#  .....

Ort der Webdav Konfigurationen

  • Wenn virtuelle Domains vorhanden sind, müssen die Einstellungen für den WebDav-Zugang in der oder den Konfigurationsdateien für die virtuellen Domains im Ordner /etc/apache2/sites-enabled/ eingetragen werden!
  • Falls keine virtuellen Domains existieren oder wenn alle Daten auf dem Webserver unabhängig von den einzelnen virtuellen Domains via Webdav erreichbar sein sollen, wird üblicherweise in Verzeichnis /etc/apache2/conf.d/ eine Konfigurationsdatei z.B. mit Namen webdav.conf erstellt, in der dann die im folgenden beschriebenen <Location ..> - Definitionen eingetragen werden.


Detail-Konfiguration

  • Jeder WebDav-Zugang wird von den Zeilen:
     <Location /pfad>
</Location>
eingeschlossen.
  • Die gesamte Konfiguration sieht dann z.B. so aus:
    <Location /pfad>
       Order Allow,Deny
       Allow from IP-Adresse
       RemoveHandler .php
       RewriteEngine Off
       Dav On
       AuthType Basic
       AuthName "WebDav-Zugang"
       AuthUserFile /etc/apache2/name_der_passwortdatei
       Require user username1 username2
    </Location>
  • Erklärungen:
    • /pfad
gibt das Verzeichnis an, auf das der Zugriff geregelt werden soll - und zwar relativ zum jeweils zu Beginn der VirualHost Definition angegebenen DocumentRoot-Verzeichnis.
Soll das DocumentRoot-Verzeichnis als Ganzes für WebDav zugänglich sein, wird nur
<Location />
angegeben.
Oft ist es sinnvoll, für den Pfad zunächst ein Alias festzulegen, vor allem, wenn am gleichen Ort auch eine Website via Browser erreicht werden soll. Dadurch ist es möglich, den Webdav-Zugang über den Alias-Pfad einzurichten ohne dass der direkte Zugang via Webbroser dadurch beeinträchtigt wird, z.B.
     Alias /edit /var/www/webroot
     <Location /edit>
     ...
  • Order Allow,Deny
Allow from IP-Adresse
regelt, von wo aus der Zugriff auf den Server möglich ist, in diesem Beispiel nur von der angegebenen IP-Adresse aus.
  • Dav On
schaltet den Webdav-Zugang frei
  • RemoveHandler .php
Damit kann der Zugang auf Dateien via Webdav freigegeben werden, die z.B.via Browser nicht betrachtet werden können, sondern nur dafür vorgesehen sind, dass sie auf dem Webserver als Script ausgeführt werden.
  • RewriteEngine Off
Nötig falls mod_rewrite aktiviert ist.

Die letzten 4 Zeilen regeln, welche BenutzerInnen wie Zugang haben.
(Wenn diese Zeilen fehlen, kann die ganze Welt ohne Passwort auf die entsprechenden Verzeichnisse zugreifen.)
  • AuthName
legt einen Text fest, der beim Passwortdialog erscheint
  • AuthUserFile
gibt den Pfad und den Namen der Datei an, in der die Passwörter der BenutzerInnen verschlüsselt abgelegt werden. (Diesmal als absoluter Pfad)
  • Require user
gibt die Loginnamen der BenutzerInnen an, die sich (mit ihrem Passwort) einloggen können.


Passwort für Webdav-Zugang setzen

Das Setzen der Passwörter erfolgt mit folgendem Befehl:
# htpasswd absoluter-pfad-zur-Passwortdatei username
Falls die Passwortdatei noch nicht existiert kann sie mit der Option -c (create) erzeugt werden:
# htpasswd -c absoluter-pfad-zur-Passwortdatei username

Webdav-Zugriff vom Dateibrowser

  • PCManFM
    Ein Webdav-Ordner kann über das Protokoll dav:// bzw. davs://(verschlüsselte Datenübertragung) geöffnet werden:
    davs://meinserver.tld/webdavpfad

Webdav-Ordner lokal in Dateisystem einbinden

dieser Teil sollte noch ergänzt werden.