shellscripts:user-passwort-zurücksetzen

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

shellscripts:user-passwort-zurücksetzen [2011/02/07 19:07] – angelegt stshellscripts:user-passwort-zurücksetzen [2011/02/07 19:19] (aktuell) st
Zeile 1: Zeile 1:
 +====== 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.
 +
 +<code bash>
 +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
 +</code>