====== Benutzerpasswörter zurücksetzen ====== Hier eine sichere Methode Benutzerpasswörter per Shellschript. Grundsätzlich wird - eine temporäre Datei mit zufälligem Namen erzeugt (''mktemp''), - anschließend per ''pwgen'' ein Passwort erzeugt - mit ''mkpasswd'' in einen Hash umgewandelt - und dann per ''usermod'' 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