Hi, On Tue, 12 Jul 2005, Günther Zisham wrote:
Habe hier folgendes Problem: Ich möchte über PHP den Befehl "useradd" ausführen und mit "-p" auch gleich das Passwort setzen.
das möchtest du nicht[tm]
ich habe versucht das Passwort unter PHP mit s=crypt("passwort"); zu erstellen, was mir aber einen zu kurzen Passwort-String im falschen Format liefert: es beginnt nicht mit "$1$" wie alle anderen Passwörter in diesem System (SuSE 9.3, nachgesehen in /etc/shadow).
d.h. du bekommst ein DES Passwort und kein MD5 Passwort.
Auf auf einem anderen System (SuSE 9.0) sind diese so generierten Passwort-Strings nicht für "useradd" oder "usermod" zu gebrauchen.
ja, da DES und nicht MD5
Was mache ich falsch?
s.o.
Ist PHP von Haus aus nicht für MD5 kompiliert (habe auch schon einen 9-Zeichen Salt-String als 2. Parameter probiert)?
Das mit dem Salt ist ein guter Ansatz. Hast du den auch richtig aufgebaut? Ich kenne mich mit PHP nicht wirklich aus. In C solltest du mit einem Salt wie dem folgenden $1$xxxxxxxx$ Erfolg haben. Wobei xxxx natürlich durch etwas sinnvolleres zu ersetzen ist. Vielleicht passt das auch auf PHP.
Mache ich einen anderen Denkfehler?
wenn s=crypt("passwort","$1$xxxxxxxx$"); auch nichts bringt kann die php Funktion eben nur DES --> andere Funktion suchen.
P.S.: auch mit "passwd" komme ich nicht recht weiter, weil es eine Interaktion mit der Tastatur benötigt und die Passwörter anscheinend nicht gerne über "stdin" erhält (Fehlermeldung: "Password change aborted", "passwd: Authentication token manipulation error").
ich hoffe stark, dass du das Ergebnis deiner Programmierung nur in einem vom WWW getrennten Intranet einsetzt. *grusel* Greetings Daniel -- Sie brauchen einen Computer nicht einzuschalten um festzustellen, ob Windows installiert ist. Sehen Sie einfach nach, ob die Aufschrift auf der Reset-Taste noch lesbar ist.