phpbar.de logo

Mailinglisten-Archive

[php] /usr/bin/passwd und pipes

[php] /usr/bin/passwd und pipes

Daniel Lorch php_(at)_phpcenter.de
Sun, 11 Aug 2002 19:29:21 +0200


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