httpd-users-de mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Niki Hammler <mailingli...@nobaq.net>
Subject Selektives Require "xxx" für verschiedene URIs (awstats)
Date Sun, 04 Nov 2007 01:00:16 GMT
Hi,

Ich suche so etwas wie "if URI matches xxx; then a; else b;".

Besser ich beschreibe es konkret ;-)

Ich administriere einen großen Webserver bei dem es unterschiedliche
Webspaces gibt.

Für jeden Webspace ist eine bestimmte Gruppe verantwortlich ("web_xxx")
und jeder Gruppe sind Personen zugewiesen die Webmaster für den Webspace
sind. Diese Infos (alle User und Gruppen bzw. deren Zuordnung) kommen
aus einem LDAP.

Nun hab ich awstats "side-wide" installiert und ich möchte nun, dass der
Zugriff auf

/cgi-bin/awstats.conf

komplett unterbunden wird.

Die URLs

/cgi-bin/awstats.conf?config=xxx

soll nur von Mitgliedern der Gruppe "web_xxx" gestattet sein!

Dass ich mit Apache keine Variablensubstitution machen kann (und damit
das nicht elegant global machen kann) ist mir klar :-(

Aber es würde schon reichen, wenn ich bei jedem virtuellen Server
einfach eine betreffende Zeile für die Logs dazumachen könnte.

Um nicht die Basic-Auth für LDAP mehrfach schreiben zu müssen gibt es
eine "auth-ldap.conf" die dann included wird:
AuthType Basic
AuthName "Logfiles"
AuthLDAPUrl ldap://ldap-server/ou=people?uid?one
AuthLDAPGroupAttribute memberUid
AuthLDAPGroupAttributeIsDN off

Im der globalen Config will ich generell den Zugriff auf "awstats.pl"
unterbinden:

<FilesMatch "awstats.pl">
  Deny from all
</Files>

In jedem virtuellen Host:

<VirtualHost *>
  ServerName xxx.domain.tld
  [...]
  <FilesMatch "awstats.pl\?config=xxx">
    Include "auth-ldap.conf"
    Require group cn=web_xxx,ou=groups,dc=htu,dc=tugraz,dc=at
  </FilesMatch>
</VirtualHost>

Nun geht das aber nicht weil das vom globalen "überschrieben" wird. Gibt
es eine Möglichkeit, diese Überschreibung zu verhindern?

Als Alternative könnte ich das auch separat in die globale Config schreiben:

<Location /cgi-bin/>
  Include "auth-ldap.conf"
  <FilesMatch "awstats.pl\?config=site1">
    Require group cn=web_site1,ou=groups,dc=htu,dc=tugraz,dc=at
  </FilesMatch>
  # else if
  <FilesMatch "awstats.pl\?config=site2">
    Require group cn=web_site2,ou=groups,dc=htu,dc=tugraz,dc=at
  </FilesMatch>
  [...]
  #else
  Require user invalid
</Location>

Aber auch das geht nicht :-(

Ich hoffe es ist nun klar was ich meine.

Ich möchte für verschiedene URL-Patterns gerne separate "Require"
Anweisungen haben und ein generisches "else" Deny from all.


Wie bastle ich das am besten mit Apache?

Danke,
Niki


--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Mime
View raw message