Mailinglisten-Archive |
Hi Christian, > Ich soll ein Tool schreiben, das im Intranet einer Firma von den dort > arbeitenden Usern benutzt werden soll. Es wird auf dem Server laufen, > auf dem auch jeder User einen Account hat und die Leute sollen sich mit > ihren vorhandenen Benutzernamen und Passwörtern einloggen können. > > Mein Problem dabei: Wie kann ich diese Personen autentifizieren? Die > /etc/passwd lässt sich mit PHP auslesen, die /etc/shadow ist aber nur > root zugänglich... Dann käme noch das Problem mit der verschlüsselung > der Passwörter... Geht das vielleicht mit .htaccess? Da gibt es mehrere Wege : Du setzt einen YP/NIS-Server auf. http://www.php.net/manual/en/ref.nis.php Dann kann z.B. mit $passwd=yp_match('meine_yp_domain', 'passwd.byname', $user); sein verschluesseltes Passwort herausgeholt werden. Dieses kann dann mittels http://www.php.net/manual/en/function.crypt.php mit dem eingegebenem Passwort verglichen werden. Dort steht auch, wo der Unix-Standard-Salt herkommt. Wenn es sich um ein BSD, und nicht um ein Linux-System handelt, kann auch direkt ein Login über popen() probiert werden. Da Linux AFAIK keine bidirektionalen Pipes macht, funktionierts mit ihm nicht. Alternativ könnte man das /etc/shadow-File für PHP lesbar machen - etwa über einen root gehörenden cronjob, der das file kopiert und auf den webuser chowned. Liebe Grüße - johann
php::bar PHP Wiki - Listenarchive