Python:如何通过Fabric设置Ubuntu用户账号密码
我正在尝试在一个远程的Ubuntu系统上创建一个用户账户,使用的是Fabric工具。我希望这个账户有一个强密码。我可以用下面的代码来创建账户:
sudo('useradd -m test -s /bin/bash')
但我遇到的问题是,我不知道怎么设置密码。useradd -p这个选项需要一个加密后的密码。我该怎么设置密码呢?盐值是怎么传递到远程系统的?
如果能给个示例代码就太好了。
谢谢!
2 个回答
1
我这样做:
sudo('useradd %s' % username)
sudo('echo %s | passwd %s --stdin' % (username, username))
sudo('chage -d 0 %s' % username)
密码会和用户名对应,用户在第一次登录时会被要求更改他们的密码。
1
试试 chpasswd
命令。跟 passwd
不一样,你可以通过命令的标准输入来传递用户名和密码。比如,你可以上传一个包含密码的文件,然后在你的 fabfile 里加上这一行:
sudo('chpasswd < my_password_file')
根据 man chpasswd
的说明:
chpasswd 命令会从标准输入读取一系列用户名和密码的配对,然后用这些信息来更新一组已有的用户。每一行的格式是:
用户名:密码
提供的密码必须是明文的,也就是没有加密的。