Apache mit WebDav Lese-/Schreibrecht je Benutzer festlegen

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.

Zugriff auf GMX Mediacenter mit Webdav unter Fedora 8

Bei Fedora findes man nicht, wie bei anderen Distributionen ein Paket mit dem Namen webdav bzw. webdav2. Dafür hat Fedora ein Paket/Toll mit dem Namen wdfs.

yum search webdav

wdfs.i386 : WebDAV File System
yum install wdfs

 

Das Verzeichnis für den Mountpount hinzufügen:

mkdir /mnt/gmx

und die Freigabe des Mediacenter mit webdav mounten:

wdfs https://mediacenter.gmx.net /mnt/gmx

Benutzername und Passwort werden dann abgefragt, der Benutzername ist nicht die E-Mailadresse sondern die GMX Kundennummer. Diese beiden können auch mit -o username=1234567 und -o password=geheim als Parameter mit angegeben werden. Dann sollte aber auch dran gedacht werden das sie in der Bash History mit eingetragen sind und dort auch von jedem der Zugriff hat ausgelesen werden kann.

wdfs https://mediacenter.gmx.net /mnt/gmx -o username=1234567 -o password=geheim

Listinus Toplisten





Site Meter