PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Apache2 htpasswd frage



schmidtl_dd
12.12.05, 10:23
Hi

Ich habe gewisse Bereiche meines Webservers durch diesen schützen lassen, mit einet htpasswd Datei.
Nun möchte ich den Nutzern aber keine neuen passwörter geben. Alle Nutzer, die den Webserver nutzen dürfen, stehen auch in der /etc/passwd, können sich damit zwar nicht lokal, aber via FTP einloggen.

Meine Frage nun: kann ich die htpasswd irgendwie aus der /etc/passwd erzeugen? Denn gleich die /etc/passwd nutzen scheitert, keiner bekommt zugang gewährt...

marce
12.12.05, 11:14
wenn die PWs mit dem gleichen Algorithmus gehashed werden sollte man die htpasswd aus der /etc/passwd generieren können (Vermutung, nicht verifiziert...)

schmidtl_dd
12.12.05, 11:20
woher weiß der dann was das PW ist? In der htpasswd steht nur username:hash(PW), in der /etc/passwd hingegen ja noch viel mehr....

marce
12.12.05, 11:23
... kann auch sein, dass es in der /etc/shadow drinsteht...

schmidtl_dd
12.12.05, 12:06
scheint auch ein anderes dateiformat zu sein

marce
12.12.05, 12:10
alternativ und sinnvoller wären allerdings div. mod_auth_*-Module

schmidtl_dd
12.12.05, 14:06
wieso? kenn mich noch nich so sehr damit aus... aber mod_auth muß doch eh installiertsein, um htaccess verwenden zu können, oder?

marce
12.12.05, 14:14
... aber es gibt ja auch mysql-basierte und andere...

Die Apache-Doku gibt da gute Hinweise...

schmidtl_dd
12.12.05, 14:26
naja, da schieße ich atm mit Kanonen auf Spatzen...für die 10 leute reicht die datei denk ich...hätte's halt bloß gern in einer..

Newbie2001
12.12.05, 14:50
also die passwörter in der /etc/shadow werden normalerweise md5 verschlüsselt. das versteht der apache auch (htpasswd bietet auch explizit md5 verschlüsselung an). Das Problem ist nur dass die /etc/shadow ein etwas anderes format hat als das apache htpasswd file. bei der /etc/shadow hast du zwar auch erst username, dann ein ":" und dann kommt das passwort, vor der verschlüsselten passwort steht bei mir jedoch noch ein "$1" dieses müsste man per shellscript rausschneiden ebenso wie alles was nach dem zweiten doppelpunkt kommt (username:$1md5-verschlüsseltes-passwort:....).
Wie gesagt theoretisch ließe sich die shadow per shellscript umformatieren und daraus ein htpasswd-file generieren, aber ich glaube nicht, dass das im sinne des erfinders wäre. wenn es sich wirklich nur um 10 user handelt, kannst du ja die usernames selbst in ein htpasswd file eintragen und die verschlüsselten passwörter direkt aus der /etc/shadow rauskopieren. Ansonsten wäre es vll. doch sinnvoller ein mysql authentifizierung sowohl für http als auch für ftp durchzuführen, dann musst du die user garnicht mehr in der der /etc/shadow drinstehen haben.

fuffy
12.12.05, 14:57
Hi!

Versuch es doch mal mit mod_auth_pam (http://pam.sourceforge.net/mod_auth_pam/).

Gruß
fuffy

Newbie2001
12.12.05, 15:07
das ist ne gute idee. vergiss was ich gesagt habe, das ist wahrscheinlich die einfachste und eleganteste lösung.

schmidtl_dd
13.12.05, 13:36
Hab mit mod_auth_pam installiert...scheint auch gut geklappt zu haben, keine Fehlermeldungen, und der Apache startete neu.
Aber jetzt komm ich trotz ausführlicher Lektüre diverser Literatur nicht weiter.

in meiner /etc/pam.d/apache2 steht:

@include common-auth
@include common-account

So weit, so gut. Also nun zum Test folgenden Eintrag in die config vom Apache geschrieben:

<Directory /var/www/family>
AuthPAM_Enabled on
AllowOverride None
AuthName "Family Secrets"
AuthType "basic"
require user schmidtl
</Directory>

Nur leider kann ich mich nicht auf dieser Seite einloggen :(