Apache-Problem: überlappende Location-Direktiven
Christian Kruse
- webserver
Tag zusammen,
ich habe ein kleines Problem mit dem Apachen. Und zwar moechte ich, dass verschiedene
Bereiche eines Verzeichnisbaums mit unterschiedlichen Realms geschuetzt werden. Beispiel:
/ soll fuer alle User der Gruppe xyz zugaenglich sein
/abc/ soll fuer alle User der Gruppe zyx zugaenglich sein
/abc/admin/ soll nur fuer user abc und def zugaenglich sein
Dummerweise frisst der Apache es _nicht_, wenn man Entsprechend drei <Directive>- oder
<Location>-Container dafuer bastelt. Hat jemand eine Idee, wie man ihn dazu bringen
koennte?
Grüße,
CK
Hi,
/ soll fuer alle User der Gruppe xyz zugaenglich sein
/abc/ soll fuer alle User der Gruppe zyx zugaenglich sein
/abc/admin/ soll nur fuer user abc und def zugaenglich sein
Ich weiß nicht, ob das bei Location auch zutrifft, aber:
wenn man Aliase /abc, /abc/admin einrichten will, muß man den kürzesten zuletzt definieren, da sonst bei einer URL /abc/admin das /abc bereits durch den Alias ersetzt wird, bevor das "admin" ausgewertet wird.
Ich würde an Deiner Stelle einfach mal mit der Reihenfolge der Location-Einträge spielen.
Dummerweise frisst der Apache es _nicht_, wenn man Entsprechend drei <Directive>- oder
<Location>-Container dafuer bastelt.
Directive? Directory?
cu,
Andreas
Hallo MudGuard,
Hi,
/ soll fuer alle User der Gruppe xyz zugaenglich sein
/abc/ soll fuer alle User der Gruppe zyx zugaenglich sein
/abc/admin/ soll nur fuer user abc und def zugaenglich seinIch weiß nicht, ob das bei Location auch zutrifft, aber:
Nein, leider nicht. Fuer <Directory> ist dokumentiert: Abarbeitungsreihenfolge from
shortest path to longest. Fuer <Location> steht gar nichts. Aber dummerweise funktioniert
das aber irgendwie nicht fuer require, irgendwie.
Dummerweise frisst der Apache es _nicht_, wenn man Entsprechend drei <Directive>- oder
<Location>-Container dafuer bastelt.Directive? Directory?
Aeh, ja, sorry, <Directory>.
Grüße,
CK
Hi,
Nein, leider nicht. Fuer <Directory> ist dokumentiert: Abarbeitungsreihenfolge from
shortest path to longest. Fuer <Location> steht gar nichts. Aber dummerweise funktioniert
das aber irgendwie nicht fuer require, irgendwie.
require? Also Base Authentification?
Hast Du verschiedene Realms angegeben oder immer das gleiche?
cu,
Andreas
Hallo MudGuard,
Hi,
Nein, leider nicht. Fuer <Directory> ist dokumentiert: Abarbeitungsreihenfolge from
shortest path to longest. Fuer <Location> steht gar nichts. Aber dummerweise funktioniert
das aber irgendwie nicht fuer require, irgendwie.require? Also Base Authentification?
Ja. Ich dachte, das sei aus der Frage hervorgegangen.
Hast Du verschiedene Realms angegeben oder immer das gleiche?
Sowohl als auch.
Ich habe die Loesung allerdings jetzt gefunden: es geht nicht per httpd.conf, es _muss_
.htaccess verwendet werden. Jetzt hat das ganze nur noch einen Schoenheitsfehler:
Mozilla & IE fragen nach /favicon.ico ;-) Mal sehen, ob ich es hinkriege, dass favicon.ico
nicht erfasst wird.
Grüße,
CK
Hallo nocheins,
Mal sehen, ob ich es hinkriege, dass favicon.ico nicht erfasst wird.
gut, jetzt siehts so aus:
in / eine .htaccess:
<Files "favicon.ico">
require valid-user
</Files>
require group xyz
in /abc/ eine .htaccess:
require group zyx
in /abc/admin/ eine .htaccess:
require user abc def
Grüße,
CK
Tag zusammen,
ich habe ein kleines Problem mit dem Apachen. Und zwar moechte ich, dass verschiedene
Bereiche eines Verzeichnisbaums mit unterschiedlichen Realms geschuetzt werden. Beispiel:/ soll fuer alle User der Gruppe xyz zugaenglich sein
/abc/ soll fuer alle User der Gruppe zyx zugaenglich sein
/abc/admin/ soll nur fuer user abc und def zugaenglich seinDummerweise frisst der Apache es _nicht_, wenn man Entsprechend drei <Directive>- oder
<Location>-Container dafuer bastelt. Hat jemand eine Idee, wie man ihn dazu bringen
koennte?
Verstehe ich nicht. Folgendes funktioniert hier (Apache 2), wie erwartet (user a kommt auf /, user b auf /abc und x und y auf /abc/admin; auch ohne verschiedene Realms und auch wenn x/y Gruppenmitglieder sind):
<Location />
Authtype Basic
Authname "foo"
AuthUserfile conf/users
AuthGroupfile conf/groups
require group 1
</Location>
<Location /abc>
AuthName "bar"
require group 2
</Location>
<Location /abc/admin>
AuthName "baz"
require user x y
</Location>
----------
$ cat conf/users
x:$apr1$BW5Lj...$UQOe5UyCiXG7hIaxQ1sWE/
y:$apr1$MJaJk/..$kp9udZSYA/8EVsYUfG.1L0
a:$apr1$f3.9B...$PnWeQkn9FDycwnc4Lu8aw.
b:$apr1$PX2c2...$FNZ3bJvNNhIP9QoRGojIV1
$ cat conf/groups
1: a
2: b
Was funktioniert denn bei dir nicht? Das ließ sich anhand deiner Fehlerbeschreibung leider nicht herausfinden.
Mr. P