WebDAV einrichten ================== Admin Alfred will für User Ulrich unter dessen Domain example.net einen WebDAV-Zugang einrichten. 0. Inhalt --------- 1. vuser anlegen 2. Config anlegen 3. Configgenerator 4. Rechte anpassen 5. Fehlersuche 6. Liste mit den Direktiven 6.1 Beispiel 7. Kontakt 1. vuser anlegen ---------------- In der MySQL muss ein (oder mehrere) User angelegt werden, gegen den die Authentifizierung laufen soll. Die Datenbank heißt vusers, die Tabelle users. Für WebDAV auf jeden Fall gebraucht werden die Spalten userid, domain, password, uid, gid und perm_webdav. Wie man einen User anlegt beschreibt die FAQ ../various/FAQ - neuen Mail oder WebDAV user anlegen.txt userid und domain bilden zusammen den Userkennung, die für die Authentifizierung herangezogen wird und in der Config unter allow aufgeführt werden muss. password ist das zugehörige Passwort für diesen User. perm_webdav muss auf 1 gesetzt werden, sonst wird der User trotz korrektem Passwort nicht reingelassen. 2. Config anlegen ----------------- In /etc/webdav/config/ im Ordner von alfred wird eine Configdatei angelegt. Als Template kann /etc/webdav/config/config.template dienen. In der Config werden ein paar Anpassungen an die Gegebenheiten fällig. Eine kurze Erklärung zu den Direktiven gibt's weiter unten. Mit allow gibt man einen oder mehrere User an, die per WebDAV zugreifen können. Einchecken nicht vergessen: svn add $MYFILE svn commit -m "- WebDAV für $USER" $MYFILE 3. Configgenerator ------------------ Durch Aufruf von /etc/webdav/webdav-gen.pl wird die Config für xinetd, Apache1 und Apache2 generiert. Mit -v sieht man auch gleich, was alles passiert und mit -c kann man ein evtl. fehlendes Errorlogfile erzeugen lassen. cd /etc/webdav/ ./webdav-gen.pl -v -c Danach die Server reloaden: service apache2 restart service xinetd reload 4. Rechte anpassen ------------------ Der Ordner, in dem WebDAV läuft und alle Unterordner müssen die richtigen Rechte haben. Empfohlen wird www-example.www-data und Mode 02750 für die Ordner sowie Mode 0640 für die Dateien. Hinweis: WebDAV legt neue Dateien und Ordner mit umask 007 an. 5. Fehlersuche -------------- Q1: ls liefert 404. A1.1: Dateirechte? Der WebDAV Zugriff läuft als www-example.www-data. Hat der User Leserechte? A1.2: Dateirechte der Unterordner? Ist auch nur ein Unterverzeichnis nicht lesbar, verweigert WebDAV den ls -> alle Unterordner lesbar machen, siehe auch A1. Q2: Geht nicht A2.1: Probeweise unter Umgehung des Proxys direkt auf den WebDAV zugreifen: cadaver http://localhost:18100/ (Portnummer duch die eigene ersetzen) A2.2: Wird überhaupt etwas ausgeliefert? lynx http://localhost:18100/ (Portnummer durch die eigene ersetzen) Q3: Wo kommen Fehlermeldungen an? A3: In /var/log/webdav/*-error.log Allerdings werden da keine Konfigurationsfehler gemeldet, nur die Meldungen, die während dem Normalbetrieb auftreten, also File not found und so Zeug :-( 6. Liste mit den Direktiven --------------------------- Folgende Direktiven können in der Configdatei vorkommen. * admin Name des Admins, zu dem der User gehört * domain Domain, unter der's laufen soll. Wird u.a. für's errorlog gebraucht * alias Unter dieser URI unterhalb von https://ungesichert.de wird das Verzeichnis per WebDAV angesprochen. Sollte unbedingt mit /webdav/ beginnen, den Domainnamen enthalten und *WICHTIG* KEIN / am Schluss haben * port irgend ein freier Port >18000. Die bereits belegten Ports sind in /etc/webdav/config/used_ports automatisch hinterlegt * user Unter dieser uid läuft der WebDAV Server * group (optional) lieber nicht angeben, sonst haut's einem die Dateirechte um die Ohren. * errorlog (optional) lieber nicht angeben, es wird schon ein sinnvoller Name vergeben. * docroot toplevel Ordner, der WebDAV-enabled sein soll. Das kann auch ein Unterordner im "normalen" Docroot sein. * authname Authentication Realm. Irgend ein beliebiger Text für den User, der sich anmelden will * allow vuser, die zugreifen dürfen 6.1 Beispiel ------------ Siehe /etc/webdav/config/config.template: admin admin domain example.net alias /webdav/example.net serveradmin webmaster@example.net port 18100 user www-example docroot /home/www/admin/example.net/webdav/ authname "WebDAV" allow webdav@example.net allow webdav2@example.net 7. Kontakt ---------- Achim Settelmeier 2005-05-05, settel 2007-05-24, msa (kleine Änderungen)