/etc/passwdファイルからユーザー(最初の列)を特定し、それらにパスワードを割り当てたいです。デフォルトのシステムアカウントではなく、ユーザーアカウントに対してのみこれを実行したいと思います。これまでに単純な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