.htuser mit Hilfe von Perl auslesen
Andreas H.
- perl
Hallo,
ich versuche über Perl die Datei .htusers auszulesen. Geht das theoretisch? Ich komme bislang nicht in den absoluten Pfad rein. Ziel ist es, dass die Benutzer ihre Passwörter ändern können.
Im Perl-Script steht folgendes:
open(DATEI,"/.htusers") || die;
an der Stelle bricht er per Fehlermeldung ab (died at line 6).
Die .htusers liegt gleich an der Stelle im absoluten Pfad. In der .htaccess steht folgendes:
AuthUserFile .htusers
Passwortabfrage usw. funktioniert ohne Probleme.
Vielen Dank für die Hilfe,
Andreas H.
use Mosche;
ich versuche über Perl die Datei .htusers auszulesen. Geht das theoretisch?
Ja.
Ich komme bislang nicht in den absoluten Pfad rein. Ziel ist es, dass die Benutzer ihre Passwörter ändern können.
Im Perl-Script steht folgendes:
open(DATEI,"/.htusers") || die;
an der Stelle bricht er per Fehlermeldung ab (died at line 6).
Du musst den lokalen Pfad angeben:
open(DATEI, "/pfad/zu/deinem/webspace/.htuser") || die;
Die .htusers liegt gleich an der Stelle im absoluten Pfad. In der .htaccess steht folgendes:
AuthUserFile .htusers
Auch hier sollte eigentlich der absolute Pfad gegeben sein.
Ich habe zum gesamten Zugriff auf die .htusers/.htgroup - Dateien (ich weiss, die können auch anders heissen) mal ein Modul geschrieben, welches den gesamten Zugriff darauf regelt. Es gibt keine Dokumentation, ist aber größtenteils selbsterklärend. Wäre nett, wenn du es mal ausprobieren willst - es ist reiner Perl-Code, es sollte also reichen, es einfach in dein Verzeichnis reinzulegen.
URL zum Download: http://www.fanalin.de/projects/perl/passwd/Passwd-0.8.pm
Zum Gebrauch der einzelnen Methoden solltest du immer mal auf die erste Zeile der entsprechenden Funktion sehen.
use Tschoe qw(Matti);
use Mosche;
use Mosche;
Ich habe zum gesamten Zugriff auf die .htusers/.htgroup - Dateien (ich weiss, die können auch anders heissen) mal ein Modul geschrieben, welches den gesamten Zugriff darauf regelt. Es gibt keine Dokumentation, ist aber größtenteils selbsterklärend.
Weil ich es sowieso machen musste, habe ich mal eine passende Dokumentation dazu geschrieben. Diese ist per Perldoc zu erreichen. Wenn du keine Perldoc hast, dann schau mal unter
http://www.fanalin.de/projects/perl/passwd/Passwd-0.1_doc.html.
Außerdem habe ich das ganz mal zurückgestuft auf 0.1 (man weiß ja nie, was noch kommt).
Die neue URL lautet:
http://www.fanalin.de/projects/perl/passwd/Passwd-0.1.pm.
Wäre nett, wenn du (und andere) es mal ausprobieren könnten.
use Tschoe qw(Matti);
Hi Matti,
http://www.fanalin.de/projects/perl/passwd/Passwd-0.1_doc.html.
TODO
Vor simultanen Zugriffen schützen (locking)
In der Tat.
Auf Windows testen (wg. crypt())
Kein crypt() unter Windows. Dafür wahlweise Klartext, MD5 oder SHA.
Probiere mal ein bißchen mit apache/bin/htpasswd.exe herum; die drei möglichen Formate sehen deutlich unterschiedlich aus, Du kannst also leicht erkennen, was es jeweils sein soll.
Viele Grüße
Michael
» Du musst den lokalen Pfad angeben:
» open(DATEI, "/pfad/zu/deinem/webspace/.htuser") || die;
Das habe ich getan. Die htusers liegt gleich in dem Verzeichnis von Apache. Habe das alles momentan nur lokal eingerichtet und arbeite unter WinDussel. Momentan habe ich leider keinen Provider, wo ich es unter Linux probieren könnte.
» Auch hier sollte eigentlich der absolute Pfad gegeben sein.
Merkwürdig ist, dass, wenn ich die htusers z. B. in den Pfad 'C:/Programme/Apache Groupe/Apache/Test' lege, in die htaccess 'Test/.htusers' und nicht '/Test/.htusers' reinschreiben muss.
Dein Modul habe ich bisher nicht auprobiert bzw. nicht ausprobieren können. Ich komme nach wie vor nicht an die htusers ran.
Viele Grüße,
Andreas
Hallo,
ich versuche über Perl die Datei .htusers auszulesen. Geht das theoretisch? Ich komme bislang nicht in den absoluten Pfad rein. Ziel ist es, dass die Benutzer ihre Passwörter ändern können.
da hab ich einen guten Tipp:
use Shell qw(htpasswd);
htpasswd ("-b $passwordfile $uid $password_1");
also das shellkomando htpasswd in einem PERL CGI nutzen.
Die $uid = $ENV{'REMOTE_USER'} somit kann nur der auth. User sein passwort selbst ändern. Der Rest ist Tipparbeit ;-)
Gruß, Rolf
Im Perl-Script steht folgendes:
open(DATEI,"/.htusers") || die;
an der Stelle bricht er per Fehlermeldung ab (died at line 6).
Die .htusers liegt gleich an der Stelle im absoluten Pfad. In der .htaccess steht folgendes:
AuthUserFile .htusers
Passwortabfrage usw. funktioniert ohne Probleme.
Vielen Dank für die Hilfe,
Andreas H.