Hier eine sichere Methode Benutzerpasswörter per Shellschript.
Grundsätzlich wird
mktemp
),pwgen
ein Passwort erzeugtmkpasswd
in einen Hash umgewandeltusermod
gesetzt.Das neue Passwort ist nicht in der Prozessliste sichtbar, also auch vor neugierigen lokalen Benutzern sicher, da es direkt über die Standard-eingabe in die tempdatei $temp-file und von da nach ''mkpasswd' übertragen wird.
temp-file=`mktemp` if [ ! -w "$temp-file" ]; then echo "$temp-file not writeable, is mktemp installed?" exit 1 fi pwgen -s -1 12 > $temp-file # alternative randomness: # head -c 10 /dev/urandom | uuencode -m - | tail -n 2 | head -n 1 > $temp-file if [ $? -ne 0 ]; then echo "Error: could generate passwort (is pwgen installed?) exiting." exit 1 fi pw-hash=`cat "$temp-file" | mkpasswd --stdin` if [ "$pw-hash" != 0 ]; then echo "no Hash generated! is mkpasswd installed?" exit 1 else rm "$temp-file" fi usermod -p "$pw-hash" "$user" if [ $? -ne 0 ]; then echo "Error: could not set hash (of password) for user $user. exiting." exit 1 fi