我想通過fabric在遠程Ubuntu 10.4
框中更新我的密碼。通過Python/Fabric從命令行更改Unix密碼
我希望我的fabfile.py
會是這個樣子:
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))
不幸的是我知道的唯一命令讓一個更改密碼爲passwd
,並在Ubuntu 10.4似乎沒有被任何將新的(或舊的)密碼作爲參數傳遞給passwd
的方式。
用什麼命令可以通過fabric
在Ubuntu 10.4上更改用戶密碼?
編輯: 我看了一眼usermod -p
,以及可能的工作,但不建議由手冊頁。
編輯:出於某種原因,usermod -p
也無法通過結構。
同時,我試過在mikej的回答一個(有點不安全)的變化是沒有解決的問題:
# 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")
這不是一個很優雅的解決方案,但它的工作原理。
謝謝您的閱讀。
布賴恩
注意,上清醒,參數爲'usermod命令-p'是「的加密密碼,(3)由作爲隱窩返回」使用SHA-512不明文。 usermod頁面中的警告相當於說「你會在短時間內將(通常隱藏的)/ etc/shadow的哈希內容放入進程表中」,這取決於你的安全要求,可能並不是那麼簡單揭示。 – msw 2010-06-20 21:33:40