Zugriff per WebDav ist mit dem DAV Modul im Apache schnell eingerichtet. Der Zugriff ist auch leicht einzuschränken mit AuthUserFile und mit AuthGroupFile kann sogar einzelnen User Lesen und Schreiben erlaubt werden.
Apache Konfiguration:
Hier ist das DocumentRoot auf /path/to/webdav/data ausserhalb des Root gesetzt, welches für die Homepage benutzt wird. Es kann auch innerhalb des Verzeichnisses liegen in de auch die Homepage liegt. Will man aber nicht das irgendwelche ScriptKiddies oder Leute, die nichts im WebDav zusuchen haben, fern halten sollte man es einfach auf eine Subdomain legen. Es ist zwar alles mit Benutzername und Passwort geschützt, was der User nicht weiß macht ihn nicht heiss. Ist es gewünscht das sich das WebDav Daten Verzeichnis doch in der “normalen” WebRoot der Homepage befindet ist hier einfach ein Alias zu setzen und Directory anzupassen:
Alias /webdav/ /srv/www/html/wedav/
Directory /srv/www/html
Die Pfade zu dem AuthUserFile und AuthGroupFile sind dann auch anzupassen.
Hier die oben erwähnte Konfiguration ausserhalb des DocumentRoots der Internetseite:
<Directory /path/to/webdav/data>
DAV on
Options +Indexes
AllowOverride AuthConfig
AuthType Basic
AuthName “WebDAV Verzeichnis”
AuthUserFile /path/to/webdav/.htpasswd
AuthGroupFile “/path/to/webdav/.htgroups”
<LimitExcept OPTIONS>
Require valid-user
</LimitExcept>
<Limit COPY DELETE LOCK MKCOL MOVE POST PUT UNLOCK>
Require group rw
</Limit>
</Directory>
Die Gruppe “rw” bekommt dann die Rechte “COPY DELETE LOCK MKCOL MOVE POST PUT UNLOCK” über die Datei .htgroups. Alle Benutzer werden wie gewohnt in die .htaccess eingetragen. Die User, die per WebDav das Verzeichnis beschreiben dürfen kommen in die Datei .htgroups zu “rw: …” die restlichen User zum Eintrage “ro: …”. Die Datei ist wie folgt aufgebaut:
rw: admin1 admin2 user1 user2
ro: gast1 userA userB
Anschliessend noch ein Apache reload und man kann den Zugriff auf die WebDav-Freigabe testen.
Fehler beim Zugriff
Sollte der Zugriff im Browser oder über den Windowsexplorer/Apple Finder nicht klappen, könnten im Logfile des Apache Webserver folgende Einträge sein:
[Fri Aug 17 16:17:49 2007] [error] [client xxx.xxx.xxx.xxx] The locks could not be queried for verification against a possible “If:” header. [500, #0]
[Fri Aug 17 16:17:49 2007] [error] [client xxx.xxx.xxx.xxx] Could not open the lock database. [500, #400]
[Fri Aug 17 16:17:49 2007] [error] [client xxx.xxx.xxx.xxx] (21)Is a directory: Could not open property database. [500, #1]
Ursache ist, dass das Verzeichnis /var/lock/apache2 nur für root schreibbar war. Somit kann Apache, der als “www-data” arbeitet, das Lock für WebDAV nicht anlegen. Ein
chown www-data:www-data /var/lock/apache2
löst dieses Problem.
Fehler: undefined symbol: dav_hook_gather_propsets
Sollte dieser Fehler auftauchen, nachdem man den Apache2-Webserver neu starten will, muss man das Modul “dav” zusätzlich aktivieren: Der Fehler liegt in der Abhängigkeit, welche nicht richtig aufgelöst werden kann.
sudo a2enmod dav
Danach sollte der Webserver ohne Probleme starten.


