我想从 /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