我想编写一个 bash 脚本,执行后会将所有用户密码更改为脚本中指定的某个密码。有人知道如何实现吗?谢谢!
答案1
您可以使用chpasswd
它从 STDIN 读取用户名/密码组合列表并应用它们。
为了生成输入,我们可以使用 列出所有已启用并设置了密码的用户帐户passwd -Sa | grep -Po "^\S+(?= P)"
。然后我们在 的帮助下在每个用户名后附加一个冒号“:”和新密码sed
。
这个结构看起来会像这样:
passwd -Sa | grep -Po "^\S+(?= P)" | sed "s/$/:NEWPASSWORD/" | chpasswd
但是它必须以 root 身份执行,因此我们必须将它放入脚本中并以 root 身份运行(使用sudo
),或者我们必须将它放入 Bash root shell 中来运行它sudo bash -c 'COMMAND'
。
这是您可以运行的完整命令,请将其替换NEWPASSWORD
为您所需的内容。
sudo bash -c 'passwd -Sa | grep -Po "^\S+(?= P)" | sed "s/$/:NEWPASSWORD/" | chpasswd'