为所有现有用户分配随机密码

为所有现有用户分配随机密码

我想从 /etc/passwd 文件中 grep 用户(第一列)并为他们分配密码。我只想对用户帐户而不是默认系统帐户执行此操作。到目前为止我有一个简单的 bash 脚本

#!/bin/bash
touch /usertempfile
grep "/home" /etc/passwd |grep -v "/bin/false"|grep -v "/sbin/nologin"|grep -v $USER |awk -F":" '{print $1}' >> /userstempfile
for i in $(cat /usertempfile); do
    echo -e "password/npassword" |passwd $i
done
rm -rf /usertempfile

该脚本能够从 /etc/passwd 文件中提取非默认系统帐户的用户,但无法更改该文件中用户的密码。我做错了什么?

答案1

我在我的脚本中使用它chpasswd,它对我来说工作得很好:

echo "$USERNAME:$NEWPASSWORD" | chpasswd

PS: 适合非root用户sudo之前使用chpasswd

echo "$USERNAME:$NEWPASSWORD" | sudo chpasswd

相关内容