phpbar.de logo

Mailinglisten-Archive

[php] /etc/passwd und /etc/shadow mit PHP auslesen

[php] /etc/passwd und /etc/shadow mit PHP auslesen

Johann-Peter Hartmann php_(at)_phpcenter.de
Thu, 10 Jan 2002 10:45:00 +0100


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