Ich möchte eine Möglichkeit, mein Passwort auf einem Remote Ubuntu 10.4
Box mit zu aktualisieren.Ändern Unix-Passwort von der Befehlszeile über Python/Fabric
Ich würde meine erwarten fabfile.py
etwas würde wie folgt aussehen:
def update_password(old_pw, new_pw):
# Connects over ssh with a public key authentication
run("some_passwd_cmd --old %s --new %s" % (old_pw, new_pd))
Leider lässt ich weiß, der einzige Befehl ein das Passwort passwd
ist ändern, und auf Ubuntu 10.4 scheint es nicht zu sein, Möglichkeit, das neue (oder alte) Passwort als Argument an passwd
zu übergeben.
Welchen Befehl könnte man verwenden, um das Passwort eines Benutzers auf Ubuntu 10.4 über fabric
zu ändern?
EDIT: Ich habe einen Blick auf usermod -p
hat, und das funktionieren kann, aber es ist nicht von der man-Seite empfohlen.
EDIT: Aus irgendeinem Grund usermod -p
wurde auch nicht über Gewebe arbeiten.
Wie gut, habe ich versucht, eine (etwas unsicher) Variation MikeJ Antwort, die das Problem zu lösen hat:
# connecting & running as root.
from fabric.api import *
from fabric.contrib import files
files.append("%s\n%s" % (passwd, passwd), '.pw.tmp')
# .pw.tmp:
# PASSWD
# PASSWD
run("passwd %s < .pw.tmp" % user)
run("rm .pw.tmp")
eine sehr elegante Lösung, aber es funktioniert es nicht.
Vielen Dank für das Lesen.
Brian
anzumerken, dass auf Lucid, das Argument zu 'usermod -p' ist„das verschlüsselte Passwort, wie von Krypta (3) zurück“unter Verwendung von SHA-512 nicht der Klartext. Der Vorbehalt auf der Usermod-Seite entspricht der Aussage "Sie würden den (normalerweise versteckten) gehashten Inhalt von/etc/shadow für eine kurze Zeit in die Prozesstabelle einfügen", was je nach Ihren Sicherheitsanforderungen nicht alles sein kann Aufschlussreich. – msw