Verschiedene Passwortzugänge
Leon
- webserver
0 Linksetzer0 RoRo0 Leon0 RoRo0 Michael Schröpl
0 Norbert Kölln
Hallo,
ich habe einen Teil meiner HP mit einem Passwortschutz versehen (.htaccess) mit 5 verschiedenen Benutzern.
Ich möchte gerne kontrollieren, welcher Zugang wie oft benutzt wird.
Geht das?
Gruß
Leon
Hi Linksetzer,
habe es gelesen und mir meine log-files & statistiken mal angesehen, werde daraus aber nicht so schlau, wie ich es gerne hätte.
Es gibt zwar 3 verschiedene Benutzerzugänge, sie landen aber alle auf derselben Seite.
Hi leon,
guck mal unter http://cgi.resourceindex.com/Programs_and_Scripts/Perl/
dort findest du solche scripts wie stat.cgi oder ähnlich.
und setzte das script.cgi in die erste seite vom geschützten bereich
und meistens wird dann auch der benutzer name geloggt in die logdatei das Du im cgi
gewählt bzw. angegeben hast.
einbinden kannst du das cgi so in deine seite:
<img SRC="stat.cgi" NOSAVE BORDER=0 height=1 width=1>
gruss vom Alain
Hallo,
ich habe einen Teil meiner HP mit einem Passwortschutz versehen (.htaccess) mit 5 verschiedenen Benutzern.
Ich möchte gerne kontrollieren, welcher Zugang wie oft benutzt wird.
Geht das?
Ja das geht, du müsstest ein CGI (oder besser SSI) einbauen und die Benutzer IDs welche in der PasswordDatei stehen mit
$ENV{'REMOTE_USER'} (so heißt die Variable in PERL) vergleichen und entsprechend loggen. Das loggen kann in einer Textdatei erfolgen, als Dateiformat z.B. so:
[user_A]
count=123
[user_B]
count=23
usw. Eine solche Datei läßt sich mit dem Perl Modul Config::IniFiles recht einfach auslesen und auch beschreiben.
Gruß, Rolf
Ich glaube, das ist genau dass, wonach ich gesucht habe! Danke!
Mir fehlt leider jegliches Grundwissen über CGI und/oder SSI.
Hast du vielleicht einen idiotensicheren Link oder ein fertiges Musterskript für mich?
Ich glaube, das ist genau dass, wonach ich gesucht habe! Danke!
Mir fehlt leider jegliches Grundwissen über CGI und/oder SSI.
Du findest eigentlich alles dazu in SELFHTML.
Hast du vielleicht einen idiotensicheren Link oder ein fertiges Musterskript für mich?
Nana, du selbt hast mich gerade eben erst auf die Idee gebracht so was zu schreiben ;-)
Das wäre mal was für ein verregnetes Herbswochenende...
Rolf
Hi Rolf,
Nana, du selbt hast mich gerade eben erst auf die
Idee gebracht so was zu schreiben ;-)
völlig überflüssig.
Die REMOTE_USER-Kennung steht im Common Logfile Format des normalen access_log in Spalte 3. Da muß niemand selbst etwas erfassen.
Auswertung durch gängige Analyseprogramme wie Webalizer ist Standard.
Viele Grüße
Michael
Ich habe hier eine riesige access_log vor mir - was genau ist für dich "Spalte 3"?
Kannst du mir mal bitte ein Beispiel schreiben?
Leon
Hi Michael,
Nana, du selbt hast mich gerade eben erst auf die
Idee gebracht so was zu schreiben ;-)
völlig überflüssig.
Die REMOTE_USER-Kennung steht im Common Logfile Format des normalen access_log in Spalte 3. Da muß niemand selbst etwas erfassen.
grep user access_log | wc -l
Warum so einfach, warum nur, warum ;-)
Viele Grüße, Rolf
Hi Rolf,
grep user access_log | wc -l
daß Du die pipe sparen und "grep -c user access_log" schreiben könntest,
weißt Du?
Deine Methode wird nicht funktionieren - Du wirst eine unbestimmte,
aber zu hohe Zahl bekommen (weil das "grep" auch in den übrigen Spalten
matchen kann, beispielsweise in den URLs oder den UserAgents oder ...).
Außerdem ist es natürlich ineffizient, für jeden Benutzer das komplette access_log zu verarbeiten. Schlimmer noch: Woher nimmst Du die Liste der Benutzernamen?
Aber die Idee an sich ist so schlecht nicht (CFL vorausgesetzt) - was
fehlt, ist nur die korrekte Umsetzung. Die könnte etwa so aussehen:
cut -d' ' -f3 access_log | sort | uniq -c | sort -k1n
oder langsam zum Mitschreiben:
1. Schneide mit "cut" das 3. Feld aus dem access_log heraus, wobei ' ' als Feldbegrenzer dient (ergibt Zeilen mit einer Spalte, nämlich dem Benutzernamen)
2. Sortiere diese Werte (als Strings), ergibt Zeilen mit einer Spalte.
3. Fasse in der nun sortierten Liste aufeinanderfolgende Zeilen zusammen und ersetze sie durch Anzahl und Wert - das ergibt Zeilen mit zwei Spalten.
4. Sortiere diese Liste nach der ersten Spalte numerisch.
Es gab auch mal Zeiten ohne Perl ... aber schon mit UNIX. ;-)
Viele Grüße
Michael
Moin, moin!
Schau doch mal in die Server-Logfiles. Den mir zur Verfügung stehenden Informationen kann ich entnehmen, welche Benutzer wie häufig den paßwortgeschützten Bereich genutzt haben.
Norbert
Moin Norbert, (ein Nordlicht - juhu! (ich auch))
kannst du mir eine Zeile aus deiner Logfile posten und zeigen, wie ich meine Infos rauslesen kann?
Leon
kannst du mir eine Zeile aus deiner Logfile posten
und zeigen, wie ich meine Infos rauslesen kann?
http://httpd.apache.org/docs/mod/mod_log_config.html
-> "CLF"
Nochmals moin, moin, liebes Mit-Nordlicht!
Ich der mir zur Verfügung stehenden Auswertung findet sich eine Tabelle als Zusammenfassung:
# Anfragen Dateien kb Besuche Benutzer
1 40 0.22% 40 0.30% 1018 0.44% 1 0.38% benutzer1
2 34 0.19% 34 0.25% 99 0.04% 1 0.38% benutzer2
Und eine Zeile im Log sieht z. B. so aus:
10.4.112.21 - benutzer1 [19/Sep/2002:07:15:40 +0200] "GET /cgi-bin/intern/verzeichnisname/dateiname.pl HTTP/1.0" 200 2445 "-" "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)"
Den Benutzernamen könnte man herausholen, indem man jede Zeile in Bestandteile auftrennt, die durch Leerzeichen voneinander getrennt sind. Dann wäre der 3. Teil der interessante. Und das ganze wäre z. B. mit Perl realisierbar.
Norbert