Hallo nochmals, 2006-02-14 16:35 +0100, Jens Daniel Schmidt:
Juergen Pabst wrote:
Hallo Kimmo!
Vielleicht so: ------------- cut here ----------------------- #!/bin/bash while read zeile do /usr/sbin/useradd "$zeile" -d /home/"$zeile" -g users -s /bin/false; echo -e "$zeile"; ( echo "passwort"; sleep 3; echo "passwort"; ) | /usr/bin/passwd "$zeile"; echo -e "Passwort gesetzt\n" done < benutzer.txt ------------- cut here -----------------------
"user" als Variablenname ist eine schlechte Wahl. Außerdem hast du die Variable "zeile" benutzt, obwohl deren Wert nie gesetzt wird.
Sorry, mein Fehler, im Script habe ich beide Versionen ($zeile und $user) ausprobiert, also an der Variablen sollte es nicht liegen.
Also so (siehe unten) funktioniert es bei mir :) (ist auch etwas schneller als mit einem slepp 3 für jeden neuen user)
#!/bin/sh
if test $1 then FILE=$1 else FILE="benutzer.txt" fi
for newuser in `cat $FILE` do /usr/sbin/useradd $newuser -d /home/$newuser -g users -s /bin/false; echo -e $newuser; echo "password" | /usr/bin/passwd --stdin $newuser; echo -e "Passwort gesetzt\n"; done;
Ich habe mein Skript auch mit einer Test-Datei (mit 2 Einträgen) probiert und konnte damit problemlos zwei neue users anlegen...:) Übrigens, die "-Zeichen in meinem Skript sind eigentlich unnötig, die Benutzernamen dürfen ja keine Leerzeichen haben. Gruß Kimmo