PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql -> htpasswd



YoZ
18.05.06, 13:02
hallo leute...

brauche ein paar ideen:

bei mir läuft dspam mit vexim mit mysql und checkt emails für virtuelle user.. habe jetzt eine zeitlang gebraucht bis das lief.. nun müsste ich die webinterface für alle user zur verfügung stellen und habe mir folgendes überlegt:

ich könnte die htpasswd datei einfach mit den daten aus der db sync. wenn ich das regelmäßig machen würde, könnten die user immer mit ihrem email password auch die webinterface von dspam zugreifen obwohl sie ihr password ändern.

die datei habe ich jetzt so erstellt: htpasswd file user password

gibt es ne möglichkeit das ganze zu automatisieren, so dass user und password für jeden user aus der mysql db geholt wird und die htpasswd datei erstellt wird?

MfG, yoz

marce
18.05.06, 13:19
z.B. per cron-job und einem Shell / php / perl-Script

YoZ
18.05.06, 13:25
yup.. so was dachte ich mir..

problem:

müsste php/perl lernen ;-) mit dem bash scripting habe ich da nicht so ein problem.. nur fehlt mir die erfahrung mit php und perl kann ich leider gar nicht.

danke für die rasche antwort!

marce
18.05.06, 13:26
dann mach's halt mit shell - ist ja kein Problem...

(so 'ne Kombination aus while, cut / sed, mysql, 'ner SQL-Abweisung, htpasswd, ...)

YoZ
18.05.06, 15:17
nun bin so weit, dass die usernamen und passwörter in eine datei geschrieben werden:


d=$(mysql -uroot -pPASS --execute="use vexim; SELECT users.username, users.clear FROM users INTO OUTFILE '/tmp/result.txt';")

dadurch entsteht eine datei die folgendermassen aussieht:


user1@domain.org pass
user2@domain.org pass
user3@domain.org pass

wenn ich nun folgendes mache:



for i in `cat /tmp/result.txt`; do htpasswd -b password-file $i; done;

dann kann er die datei nicht wirklick erstellen da in der result.txt zwischen user und pass mehr als ein leerzeichen ist. die syntax ist dadurch falsch.

dann kommt noch dazu, dass paswörter auch leerzeichen enthalten können. dann müssten die einträge auch irgenwie so aussehen:

"user@domain.org" "pass"

jemand eine idee wie man sowas lösen kann?

greets

marce
18.05.06, 16:18
ein Fall für sed und cut...