Mailinglisten-Archive |
hi,
Ich versuche schon seit längerem einen UNIX-User per PHP-Script zu erstellen.
Leider will das Script nicht so, wie ich das gerne hätte und mir ist es ein
Rätsel weshalb. Ich öffne ein pipe auf /usr/bin/passwd und schreibe dort
das Passwort hinein. So sieht der Code aus:
$fp = popen("/usr/bin/passwd foo", "w");
fputs($fp, "bar\n");
fputs($fp, "bar\n");
pclose($fp);
Die Ausgabe des Scriptes ist:
Enter new UNIX password: Retype new UNIX password:
passwd: Conversation error
Das Script läuft auf GNU/Linux, falls das eine wichtige Information wegen den
Pipes sein sollte. Ich habe zu diesem Thema gegoogelt und bin auf obskure
Parameter wie
/usr/bin/passwd --stdin
gekommen, aber offenbar war hier ein anderes UNIX gemeint, denn meines
unterstützt das nicht. Die man-page zu passwd war ebenfalls spärlich.
Andere Code-Beispiele, die ich gefunden hatte, waren in C geschrieben
und benutzten ebenfalls Pipes. Ich frage mich deshalb, was ich falsch
mache :)
Notfalls müsste ich direkt in /etc/passwd und /etc/shadow schreiben, aber
es stört mich einfach, dass obiges Script nicht geht, obwohl es das tun
müsste und ich möchte wissen, weshalb das so ist.
-daniel
php::bar PHP Wiki - Listenarchive