有没有命令可以让我一次性更改所有用户的密码?我想找到一种更简单的方法来为我机器上的所有 32 个用户执行此更改,而一次执行一个更改效率不高。我不介意更改 root,我只想更改所有帐户、管理员和基本帐户的密码。
感谢您的帮助。
Ubuntu 16.04
答案1
您可以使用 chpasswd 命令。此命令只能以 root 身份使用。在命令行中输入 chpasswd 命令,然后输入用户名和密码,对每个用户执行此操作。完成后,输入 ctrl+d。例如。
your-computer ~ # chpasswd
user1: password
user2: password
user3: password
另一种方法是创建一个包含所有用户名和密码的文件,格式相同,即用户 1:密码。使用任何文本编辑器(如 vim 或 cat)创建此文件。创建文件的示例。
your-computer ~ # cat > bulkpasswords
user1: password
user2: password
user3: password
然后在文件上运行 chpasswd 命令(以 root 身份):
your-computer ~ # chpasswd < bulkpasswords
希望这可以帮助!
资料来源: https://linoxide.com/linux-command/change-passwords-batch-mode-chpasswd/
答案2
_users=(fred mike joe)
for _user in "${_users[@]}"
do
USERPW=... # wherever you get that from
HASH=$(echo "$USERPW" | openssl passwd -1 -stdin)
# single quotes around hash, so coincidental
# stuff like $1 in the pw hash survives
sudo usermod --password '$HASH' $_user"
done