Python:如何通过Fabric设置Ubuntu用户账号密码

4 投票
2 回答
1567 浏览
提问于 2025-04-16 13:48

我正在尝试在一个远程的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 命令会从标准输入读取一系列用户名和密码的配对,然后用这些信息来更新一组已有的用户。每一行的格式是:

用户名:密码

提供的密码必须是明文的,也就是没有加密的。

撰写回答