Ändern eines Passwortes im Batchmodus

14. Januar 2008

Ihr Anliegen

Sie wollen aus einem Skript heraus das Passwort von root oder einem anderen Benutzer ändern. Dies soll ohne Benutzerinteraktion erfolgen.

Eine Lösung

Der Befehl passwd liest das Passwort von der Standardeingabe, wenn Sie die Option --stdin angeben. Beispiele:

root@linux# echo 'geheim' | passwd --stdin root
root@linux# echo '73/3g78' | passwd --stdin mk

Achtung!

Dieses Vorgehen birgt unter Umständen Sicherheitsrisiken, da das Passwort im Klartext übergeben wird. Das Passwort wird u.A. sichtbar:

  • in der History der Bash, wenn Sie den Befehl interaktiv eingeben
  • für kurze Zeit in der Prozessliste (Befehl ps ax)

Die Lösung kann trotzdem geeignet sein, z.B. wenn zur Zeit der Generierung keine anderen Benutzer auf dem System angemeldet.