此题目转自阿铭每日一题。
Q:添加user_00--user_09 10个用户,并且给他们设置一个随机密码,密码要求10位包含大小写字母以及数字,注意需要把每个用户的密码记录到一个日志文件里。
我的答案:
#!/bin/bash
#by wangyq
for i in `seq 0 9`
do
pw=`mkpasswd -l 10 -c 4 -C 4 -s 0`
useradd user_0$i
echo "$pw" | passwd --stdin user_0$i
echo "user_0$i $pw" >> /usr/local/sbin/pw.log
done
重点:passwd --stdin 从标准输入读取令牌(从标准输入 管道读入新的密码)(只有根用户才能进行此操作)
参考答案:
#!/bin/bash
for i in `seq -w 00 09`
do
useradd user_$i
p=`mkpasswd -s 0 -l 10`
echo "user_$i $p">>/tmp/user0_9.pass
echo $p |passwd --stdin user_$i
done