[linux-l] Apache2 und Webdav (lesend/schreibender Zugriff je nach User)

Robert Koropcak robert at hrodeberht.de
Sa Jul 30 22:07:39 CEST 2005


Hallo Schlomo,

Danke für deine Hilfe.Hatte erst jetzt wieder Zeit mich mit dem WebDav
auseinanderzusetzen, leider funktioniert es immer noch nicht. Das mit
dem Dateisystem war mir bekannt, habe ich ja auch so geschrieben. Wollte
nur sagen, das  Datei/Ordnerrechte korrekt für den Zugriff des Apache
Daemons gesetzt sind.

Das Problem ist das das LimitExcept in meiner Konfig nicht greift. Ich
bekomme zwar eine "Fehlermeldung" in der  /var/log/apache2/error_log

Thu Jul 28 19:43:00 2005] [error] [client 62.63.64.65] access to
/webdav/Oeffentliches Verzeichnis/Geplante AGen Multirunde/ failed,
reason: user frankfarian not allowed access
[Thu Jul 28 19:43:00 2005] [error] [client 62.63.64.65] access to
/webdav/Oeffentliches Verzeichnis/Handb\xc3\xbccher/ failed, reason:
user frankfarian
not allowed access
[Thu Jul 28 19:43:00 2005] [error] [client 62.63.64.65] access to
/webdav/Oeffentliches Verzeichnis/Liste sozialer Einrichtungen/ failed,
reason: user frankfarian not allowed access
[Thu Jul 28 19:43:00 2005] [error] [client 62.63.64.65] access to
/webdav/Oeffentliches Verzeichnis/Mitarbeiter/ failed, reason: user
frankfarian not al
lowed access
[Thu Jul 28 19:43:00 2005] [error] [client 62.63.64.65] access to
/webdav/Oeffentliches Verzeichnis/Recht/ failed, reason: user
frankfarian not allowed
access

trotzdem habe ich Vollzugriff auf alle Dateien bzw. Ordner. Irgendwie
scheint "meine" Konfiguration mit der von SuSE in Konflit zu stehen.
Evtl. werfe ich die SuSE-Config weg und setze eine eigene von Grund auf.

Auch immer wieder im Error-Log vorkommend, diese Fehlermeldung:

[Thu Jul 28 19:28:50 2005] [error] [client 62.63.64.65] access to
/webdav/index.html failed, reason: user frankfarian not allowed access
[Thu Jul 28 19:28:50 2005] [error] [client 62.63.64.65] access to
/webdav/index.html.var failed, reason: user frankfarian not allowed access
[Thu Jul 28 19:28:50 2005] [error] [client 62.63.64.65] access to
/webdav/index.php3 failed, reason: user frankfarian not allowed access
[Thu Jul 28 19:28:50 2005] [error] [client 62.63.64.65] access to
/webdav/index.php4 failed, reason: user frankfarian not allowed access
[Thu Jul 28 19:28:50 2005] [error] [client 62.63.64.65] access to
/webdav/index.php5 failed, reason: user frankfarian not allowed access
[Thu Jul 28 19:28:50 2005] [error] [client 62.63.64.65] access to
/webdav/index.php failed, reason: user frankfarian not allowed access

Allerdings ohne sichtbare Konsequenzen.

Ich habe jetzt testweise den webdav und var Ordner nach /srv/www/webdav
bzw. /srv/www/var verschoben und das Directory Statement durch Location
ersetzt (wie in der Apache Doku stehend) und einen entsprechenden Alias
gesetzt. Nach Login sehe ich jetzt gar keine Ordner mehr,

Sat Jul 30 21:29:24 2005] [error] [client 62.63.64.65] client denied by
server configuration: /srv/www/webdav/Arbeitsverzeichnis/
[Sat Jul 30 21:29:24 2005] [error] [client 62.63.64.65] client denied by
server configuration: /srv/www/webdav/Oeffentliches Verzeichnis/
[Sat Jul 30 21:29:26 2005] [error] [client 62.63.64.65] client denied by
server configuration: /srv/www/webdav/Arbeitsverzeichnis/
[Sat Jul 30 21:29:26 2005] [error] [client 62.63.64.65] client denied by
server configuration: /srv/www/webdav/Oeffentliches Verzeichnis/

Im Augenblick komme ich nicht mehr weiter. Werde Morgen weitermachen.
Wenn du noch eine Idee hast, oder kannst du mir eine Apache-Config
zukommen lassen, die ich als Basis nutzen kann ?

Grüße
Robert

Schlomo Schapiro schrieb:

>Hallo,
>
>solange der Apache nicht als root laeuft, kann er im Dateisystem auch nur 
>als sein eigener User agieren (z.B. wwwrun unter SuSE).
>
>Daher erfolgt der Zugriff auf WebDAV Dateien auch erstmal als ebendieser 
>User, so dass Deine Einstellungen auf Dateisystemebene witzlos sind. Dort 
>muss der Apache User alle Rechte haben und am Besten sonst keiner.
>
>Im Prinzip kannst Du das also nur mit Limit und LimitExcept erreichen, 
>wie auch in http://www.webdav.org/mod_dav/install.html#apache beschrieben:
>
>Using LimitExcept
>
>Rather than using the <Limit> directive and specifying an exhaustive list 
>of HTTP methods to secure, it is also possible to use the <LimitExcept> 
>directive. This directive applies the access restrictions to all methods 
>except for the methods listed. For example, your configuration section 
>might look like:
><Location /mypages>
>    DAV On
>    AllowOverride None
>    Options None
>    <LimitExcept GET HEAD OPTIONS>
>        require user webadmin
>    </LimitExcept>
></Location>
>
>Choosing to use one or the other is a matter of preference. The <Limit> 
>directive is precise and explicit, but the <LimitExcept> directive will 
>automatically restrict methods that are added in the future.
>
>Du wuerdest dann noch ein require valid-user und den auth Krempel in die 
>Konfig ausserhalb des LimitExcept Blocks aufnehmen.
>
>YMMV,
>Schlomo
>
>PS: Bisher kann m.W. nur Apache auf Netware den gewuenschten Trick, das 
>liegt aber auch an dem total anderen Unix-like Unterbau von Netware, wo 
>Apache letztlich als "root" laeuft und dann in den Kontext des Users 
>wechselt. Vielleicht kann man ja unter Linux auch irgendwie Aehnliches 
>erreichen, ich hab es leider noch nirgends gesehen.
>
>On Thu, 28 Jul 2005, Robert Koropcak wrote:
>
>  
>
>>Hallo,
>>
>>Ich habe ein kleines Problem, Webdav unter Suse 9.3 einzurichten. Wäre
>>toll, wenn mir jemand helfen kann.
>>
>>Ich möchte, das alle User nur lesenden Zugriff auf den Inhalt von
>>/webdav haben. Der User admin soll auch eine Schreibberechtigung
>>besitzen. Bisher haben jedoch i.d.R alle User Vollzugriff. Ordner-,
>>Dateiberechtigungen sind auf 750 bzw. 640 für Dateien. Besitzer ist der
>>Apache Daemon bzw. dessen Gruppe. 
>>
>>Ich habe auch schon verschiedene Kombinationen ausprobiert.
>>
>>z.B. auch
>>
>>[...]
>>
>>        <LimitExcept GET>
>>        Require user stephan frank peter ...
>>        </LimitExcept>
>>        Require user admin
>>
>>Hier meine aktuelle Konfiguration:
>>
>>/etc/apache2/httpd.conf.local
>>
>>HostnameLookups Off
>>
>>DavLockDB "/srv/www/htdocs/var/DavLock"
>>
>><Directory "/srv/www/htdocs/webdav">
>>        AllowOverride None
>>        Options Indexes
>>        Dav On
>>        <LimitExcept GET>
>>        Require valid-user
>>        </LimitExcept>
>>        Require user admin
>>        #ForceType "text/plain"
>>        AuthType Basic
>>        AuthName "Zugriff nur nach ausdruecklicher Authorisierung erlaubt."
>>        AuthUserFile /etc/apache2/htpasswd
>>        AuthGroupFile /etc/apache2/htgroup
>>        Order deny,allow
>>        Deny from all
>>        Allow from 192.168.1 62.63.64.65
>></Directory>
>>
>><Directory "/srv/www/htdocs/var">
>>        AllowOverride None
>>        Order deny,allow
>>        Deny from all
>>        Allow from 192.168.1 62.63.64.65
>></Directory>
>>
>>Ich arbeite mich gerade in Webserver/Apache ein, bin für jeden
>>"Verbesserungsvorschlag" offen.
>>
>>Grüße
>>Robert
>>
>>_______________________________________________
>>linux-l mailing list
>>linux-l at mlists.in-berlin.de
>>Die Mailingliste der BeLUG (Berliner Linux User Group)
>>
>>Wenn du diese Mailingliste  abbestellen willst, gehe bitte auf
>>https://mlists.in-berlin.de/mailman/listinfo/linux-l
>>und trage dich dort bitte aus
>>
>>    
>>
>
>  
>




Mehr Informationen über die Mailingliste linux-l