我想通过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