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