在LINUX下實現密碼批量隨機更改
在LINUX下實現密碼批量隨機更改
自動批量修改/etc/password文件中UID大於等於500的用戶的密碼,要求密碼符合以下複雜性要求,
一,達到8位,
二,密碼中需至少帶有數字或字母大小寫。
三、密碼是隨機產生的
四、需把更改后的密碼記錄下來以便發給相應人員
腳本內容:
# more random.sh
cat /etc/passwd |awk -F "[:]" '$3 >= 500{print $1}'|while read line
do
a=(0 1 2 3 4 5 6 7 8 9 a b c d e A B C D E F @ $ % ^)
for ((i=0;i<8;i++));do
echo -n ${a[$RANDOM % ${#a}]}
done
echo " $line"
done
執行腳本:
#more password_change.sh
sh random.sh |awk '{print "echo", "'\''"$1"'\''| passwd", $2, "--stdin" }' >password.txt
sh password.txt
密碼會隨機生成后輸出 到password.txt文件中,直接執行這個文件就可以完成密碼的自動更改了
bjnppb01:~/scripts # more password.txt
echo 'b$7C4D1D'| passwd nobody --stdin
echo 'b03eAa%C'| passwd cvsroot --stdin
echo '6a3$361D'| passwd oracle --stdin
echo 'E1c^b0e$'| passwd #test --stdin
echo '$@$1$%EA'| passwd netback --stdin
《解決方案》
樓主用的是什麼linux 我的linux passwd 命令沒有stdin 參數。
這種需求我是用 chpasswd 命令完成的
《解決方案》
:em30::em30: