webDAV - Problem

Diskutiere das Thema webDAV - Problem im Forum Netzwerk-Hardware.

  1. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    Hallo,
    ich möchte meinen MacMini als webDAV Server verwenden. Ich habe bereits folgendes getan:

    in der httpd.config habe ich folgende Zeile entkommentiert:
    Code:
    Include /private/etc/apache2/extra/httpd-dav.conf
    und in httpd-dav.conf folgendes eingetragen:
    Code:
    Alias /wenzel "/Volumes/Daten/wenzel"
    <Directory "/Volumes/Daten/wenzel">
        Dav On
    
        AuthType Basic
        AuthName wenzel
        AuthUserFile "/Volumes/Daten/htdaten/wenzel.passwd"
    
        <LimitExcept GET OPTIONS>
            require valid-user
        </LimitExcept>
    </Directory>
    
    Wenn ich jetzt versuche auf die Adresse http://[I][macmini][/I]/wenzel zuzugreifen meldet Finder, es sei nicht möglich und im Serverprotokoll steht, dass der Server das anmelden verhindert habe:
    Wenn ich mit einem Browser zugreife bekomme ich folgendes:
    Was kann ich tun?
     
  2. maceis

    maceis Mitglied

    Beiträge:
    16.775
    Zustimmungen:
    604
    Mitglied seit:
    24.09.2003
    Das sieht ein wenig so aus als würdest Du WebDAV und die Zugriffssteuerung mit .htaccess vermischen.
    Ich verwende WebDAV nur mit 'AuthType Digest' (was nicht heißen muss, dass es anders nicht funktioniert).

    [Edit] Kommando zurück.
    Basic muss man verwenden, wenn man auch Windows Clients hat, die über den IE zugreifen können müssen - Andernfalls ist Digest IMO zu bevorzugen, da hier die Passwörter nicht im Klartext übers Netz gehen. Man kann auch die Windows Benutzer dazu zwingen, vernünftige Clients zu verwenden.[/Edit]

    Wie hast Du die Datei "/Volumes/Daten/htdaten/wenzel.passwd" erzeugt?
    Kannst Du mal exemplarisch den Inhalt posten?
    Warum verwendest Du nicht die Vorgaben aus der Standarkonfiguration?
    Ist "/Volumes/Daten/htdaten/wenzel.passwd" für den Server lesbar?
    Was sagt "apachectl configtest"?
    Hast Du den Apachen nach der Änderung der Konfiguration neu gestartet?
     
  3. MacMännchen

    MacMännchen Mitglied

    Beiträge:
    2.881
    Zustimmungen:
    213
    Mitglied seit:
    03.10.2006
    Die Fehlermeldung in deiner error_log in Verbindung mit der Forbidden Meldung im Browser kann auch erscheinen, wenn du irgendwo in deiner httpd.conf für <Directory "/Volumes/Daten/wenzel"> eine
    Deny from all
    Direktive gesetzt hast.
     
  4. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    Hi!
    die htpasswd Datei habe ich so erzeugt:

    Code:
    htpasswd -cb "/Volumes/Daten/htdaten/wenzel.htpasswd" Wenzel [Kennwort]
    Sowohl der Ordner /htdaten als auch der Ordner /Wenzel sind mit dem Befehl "chown" auf www:www geschrieben.
    Laut Configtest ist alles in Ordnung ("Syntax OK") und ich habe den Server selbstverständlich neugestartet. Über:
    Code:
    apachectl restart
    Das Problem ist hier also, dass ich einfach keinen Fehler finden kann...
    P.S.: Die Directory "Volumes/Daten/Wenzel" wird nirgends anders in irgend einer config behandelt.
     
  5. bequiet

    bequiet Mitglied

    Beiträge:
    1.193
    Zustimmungen:
    150
    Mitglied seit:
    16.04.2005
    Wenn deine in Gänsefüsschen geschriebenen Pfade per Copy and Paste in deine Posts gelangt sind dann achte mal auf die GROSS und kleinschreibung der Verzeichnisse in deiner Config und auf Dateisystemebene ;)
     
  6. maceis

    maceis Mitglied

    Beiträge:
    16.775
    Zustimmungen:
    604
    Mitglied seit:
    24.09.2003
    Was sagen
    Code:
    ls -la /Volumes/Daten/htdaten/
    und
    Code:
    ls -ld /Volumes/Daten
    Wenn der Server da schon nicht reinkommt, kannst Du unten die Rechte einstellen, wie Du möchtest und es wir trotzdem nix.

    @bequiet
    Wenn das Dateisystem nicht mit Groß-/Kleinschreibung formatiert ist, dürfte das eigentlich nichts ausmachen.
    Aber Du hast natürlich recht. Sauber ist das nicht und Sorgfalt ist das A und O bei solchen Dingen.
     
  7. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    Hallo,
    Code:
    wenzel-massags-mac-mini:/ watzlav$ ls -la /Volumes/Daten/htdaten/
    total 8
    drwxr-xr-x   3 _www  _www   102 25 Apr 22:16 .
    drwxrwxr-x+ 11 root  admin  442 25 Apr 21:30 ..
    -rw-r--r--   1 root  _www    21 25 Apr 22:16 wenzel.passwd
    
    (Via Copy->Paste in's Forum gelangt)

    Code:
    wenzel-massags-mac-mini:/ watzlav$ ls -ld /Volumes/Daten
    drwxrwxr-x+ 11 root  admin  442 25 Apr 21:30 /Volumes/Daten
    
    (Via Copy->Paste in's Forum gelangt)

    Heißt das, dass der Benutzer www lese-&schreibrecht auf übergeordnete Ordner braucht?

    Eine Sache noch:
    Die Groß- und Kleinschreibung möchte ich einmal klarstellen indem ich alle Ordnernamen hier aufliste. Ich habe nicht alles per Copy und Past geschrieben, was bis jetzt da war. Also, so sollte es sein:
    • "Daten"
    • "htdaten"
    • "wenzel"
    Die Groß- und Kleinschreibung stimmt in der httpd-dav.config
     
  8. bequiet

    bequiet Mitglied

    Beiträge:
    1.193
    Zustimmungen:
    150
    Mitglied seit:
    16.04.2005
    Zum Thema Rechte:
    Der Benutzer www braucht zumindest auf uebergeordnete Verzeichnisse ein Lese und Ausfuehren Recht: also ein "r-x".
     
  9. Olivetti

    Olivetti Mitglied

    Beiträge:
    9.126
    Zustimmungen:
    2.371
    Mitglied seit:
    09.12.2005
    Wer soll denn _www sein?
    Liegt's vielleicht daran?
     
  10. MacMännchen

    MacMännchen Mitglied

    Beiträge:
    2.881
    Zustimmungen:
    213
    Mitglied seit:
    03.10.2006
    ok, aber die .htpasswd liegt in /Volumes/Daten/htdaten.
    Hast du für diese Directory ein entsprechendes Allow gesetzt?

    Entweder in der Directory Direktive eines übergeordneten Verzeichnisses oder explizit:
    Code:
    <Directory "/Volumes/Daten/htdaten">
        ...
        Allow from all
        ....
    </Directory>
    
     
  11. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    Hi!
    Jetzt habe ich selbstverständlich folgendes eingefügt und der Server fährt nicht mehr hoch...
    Code:
    <Directory ...........>
        Allow from all
    </Directory>
    
     
  12. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    der Server ist doch bei "Everyone" inbegriffen, oder?
     
  13. MacMännchen

    MacMännchen Mitglied

    Beiträge:
    2.881
    Zustimmungen:
    213
    Mitglied seit:
    03.10.2006
    Dürfte eigentlich nicht sein. Lässt sich auch ohne weitere Angaben von dir nicht nachvollziehen.

    Gut, anderer Ansatz:

    Schau doch mal, welches Verzeichnis als DocumentRoot in der httpd.conf eingetragen ist. Es sollte nur eine DocumentRoot Direktive in deiner httpd.conf auftauchen, da du keine virtual hosts verwendest.

    Für das gleiche Verzeichnis, das hinter DocumentRoot steht, sollte es auch eine Directory Direktive geben. Innerhalb dieser Direktive muss ein Allow from all stehen, sonst erhältst du beim Zugriff auf Unterverzeichnisse wie /wenzel genau die von dir beschriebenen Fehler.
     
  14. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    Ich selber mag keine langen Posts, aber ich produziere hier einen. Er ist aber sehr schnell gelesen.

    Ich habe alles von vorne angefangen, also von null an:
    Verwendete Verzeichnisse sind:
    • /Volumes/Webdaten/htusers - Verzeichnis in dem die .ht-Dateien untergebracht werden
    • /Volumes/Webdaten/users/wenzel - Verzeichnis für die DAV-Daten
    Die folgenden Zeilen sind in der httpd.conf geändert:
    Code:
    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
    </Directory>
    
    (Dadurch ermögliche ich .htaccess als Standard

    Code:
    Include /private/etc/apache2/extra/httpd-dav.conf
    (Zeile war aus-kommentiert)

    Folgende Zeilen habe ich in der httpd-dav.config eingrtragen:
    Code:
    #Manuell Anfang
    <Directory "/Volumes/Webdaten/htusers">
        Allow from all
    </Directory>
    Alias /wenzel "/Volumes/Webdaten/users/wenzel"
    <Directory "/Volumes/Webdaten/users/wenzel">
        DAV ON
    
        Order Allow,Deny
        Allow from all
    
        AuthType Basic
        AuthName wenzel
        AuthUserFile "/Volumes/Webdaten/htusers/wenzel.passwd"
    
        <LimitExcept OPTIONS>
            require valid-user
        </LimitExcept>
    </Directory>
    #Manuell Ende
    Das Resultat:
    Es ist jetzt möglich via webDAV eine Verbindung herzustellen, jedoch kann ich nicht schreiben, löschen etc. Im Browser bekomme ich 403 Forbidden. Das Serverprotokoll sagt "client denied by server".
    Deshalb zu gute letzt noch die Zugriffsrechte:
    P.S.: Der Benutzer und die Gruppe "_www" waren früher "www"
     
  15. MacMännchen

    MacMännchen Mitglied

    Beiträge:
    2.881
    Zustimmungen:
    213
    Mitglied seit:
    03.10.2006
    Erfolgt der 403 beim Zugriff auf /wenzel ?
    Du hast in /Volumes/Webdaten/users/wenzel keine index.html
     
  16. magheinz

    magheinz Mitglied

    Beiträge:
    2.542
    Zustimmungen:
    472
    Mitglied seit:
    06.02.2005
    Code:
    <Directory "/Volumes/Webdaten/htusers">
        Allow from all
    </Directory>
    
    Ist schon mal Unsinn wenn da die Passwortdatei ist.
    Die gehört in einen Bereich der NICHT unterhalb des Documentroots ist.
    Wie ist eigentlich DocumentRoot gesetzt und wo liegt die .htaccess?
    index.html wird selbstverständlich NICHT benötigt! Hier gehts schliessslich um webdav.

    Und wenn dem webserver die lese- und schreibrechte genommen werden, dann kann er in den webdavverzeichnisssen nicht mehr lesen und schreiben. Das sollte doch klar sein. Wozu also _www?
     
  17. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    OK, da wiedersprechen sich Macmännchen und Magheinz. Was ist hier also korrekt?
    Gut, öhm wenn man nicht weiß wo DocumentRoot ist vielleicht nicht den ersten Satz von Zitat schreiben?
    Code:
    DocumentRoot "/Library/WebServer/Documents"
    Ich ermahne Menschen die mir helfen wollen sehr ungerne, aber bitte bleiben wir doch alle mal sachlich.

    Offenbar wurde mein Post nicht vollständig gelsen. Der Benutzer und die Gruppe "www" werden als "_www" angezeigt. Zugewiesen ist das alles über
    Code:
    sudo chown -R www:www [Datei]
     
  18. magheinz

    magheinz Mitglied

    Beiträge:
    2.542
    Zustimmungen:
    472
    Mitglied seit:
    06.02.2005
    lies doch bitte endlich die apache-doku. Da wird dir das alles genau erklärt.
    http://httpd.apache.org/docs/2.2/mod/core.html#directory
    Das ist der entsprechnede Abschnitt.
    Wenn du dann verstnaden hast was man mit der Directory-Direktive macht, dann darfst du noch mal darüber nachdenken warum deine Anweisung Unfug ist.
    Aber einfach kurz für dich, da du es ja eh nicht liest:
    "Allow from all" für das Verzeichnis in dem die Passwortdatei liegt. du möchtest das jeder die Passwortdatei lesen kann?
    Abgesehen davon dass die Directive natürlich nur was bringt wenn das Verzeichnis überhaupt per web erreichbar ist. Das steht aber in der Doku...

    Wenn es nicht unterhalb der Documentroot liegt könnte immer noch ein alias eine Rolle spielen. Wenn du die Doku gelesen hättest wüsstest du das.
    Wenn allerdings das Verzeichnis nicht unterhalb das Docuemntroot oder eines durch einen Alias erreichbaren Verzeichnisses liegt, dann ist nunmal die Directory-Directive ohne Sinn.

    Und mich nerven Leute die offensichtlich zu faul sind die Doku zu der Software zu lesen welche sie einsetzen wollen.
    Ansonsten, was war an meinen Satz bitte unsachlich?

    Code:
    Der Benutzer und die Gruppe "_www" waren früher "www"
    Gewöhn die eindeutige Fehlerbeschreibungen an. Das kann auch bedeuten dass du die Rechte geändert hast.

    Bevor du allerdings nicht http://httpd.apache.org/docs/ gelesen hast wirst du von mir eh keine Antworten bekommen. Es ist mir einfach zu doof. Wenn ich vorlesen soll kannst du mich tageweise oder stundenweise buchen.

    Ansonsten halte ich es für nicht verantwortbar dass du einen öffentlich erreichbaren Apache mit deinem jetzigen Wissensstand betreiben möchtest oder sogar schon betreibst. Das Teil wird die schneller geknackt als du schauen kannst und das schlimme ist, du würdest es noch nicht einmal merken.
     
  19. magheinz

    magheinz Mitglied

    Beiträge:
    2.542
    Zustimmungen:
    472
    Mitglied seit:
    06.02.2005
    Es genügt wenn der apache-user die passwortdatei lesen kann. Sie sollte auf KEINEN Fall vom web aus erreichbar sein! Von daher macht auch keine Directory-Directive Sinn.
     
  20. watzlav

    watzlav Thread Starter Mitglied

    Beiträge:
    315
    Zustimmungen:
    5
    Mitglied seit:
    02.11.2006
    als erstes mal ganz kurz an magheinz: niemand zwingt dich dazu hier zu antworten. Schade dass du dich derart aufblasen musst um dich wohl zu fühlen, oder vielleicht bist du einfach nur zu empfindlich. Ich betreibe den Server noch nicht. Ich werde ihn auch erst online schalten, wenn ich weiß was ich tue. Der Server soll ausschließlich zum Austausch von Daten verwendet werden und eine einzige Webseite (meine) hosten. Über die Directory habe ich inzwischen den entsprechenden (den verlinkten) Abschnitt mehrmals gelesen. Auch schon vor deiner unmissverständlich direkten Aufforderung. Ich lese daraus, dass ich innerhalb des Directory-Tags Eigenschaften zur Sicherheit - sprich Zugriffsrechte etc. - und Eigenschaften zur Funktion einstellen kann. Aber nicht was ich einstellen muss um einen Ordner sicher mit DAV zu nutzen.

    Für Alle:
    Mein Ziel ist es unter meiner IP/dyndns Adresse meinen "Server" zu erreichen, der für alle aussieht wie ein stink normaler Webserver. Meinen "Server" sollen also nur HTTP-Zugriffe erreichen. Das erreiche ich durch die Konfiguration meines Routers. Und dadurch, dass der Server nur am Port 80 und 8080 lauscht.
    Als zweites soll der "Server" als webDAV-Ziel Kennwort-geschützt herhalten um Daten zu verwalten auf die ich Zugriff haben möchte um sie von überall zu verwenden. Dazu möchte ich die "Server"-Konfiguration so einstellen, dass ein Ordner, der auf einer anderen Festplatte ist, als DAV Ordner herhält. Um ungewünschte Zugriffe zu verhindern möchte ich .htaccess verwenden, da Windows auch zugreifen können soll .htaccess. Was soll ich also tun? Schlichte sachliche Antworten die mir sagen was ich tun soll, oder wo ich eine konkrete Antwort auf diese Frage erhalte reichen vollkommen.

    Wenn das oben beschriebene geschafft ist werde ich mich darum kümmern durch entsprechende Zertifikate die Verbindung zu sichern.
     
Die Seite wird geladen...
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...