要求:
创建10个用户,并给他们设置随机密码,用户名和密码记录到一个文件里,用户从user_01 到 user_10 密码要求包含大小写字母以及数字,密码长度15位。
#!/bin/bash
for i in `seq -w 1 10`
do
useradd user_$i
passwd=`mkpasswd -l 15 -s 0 -C 5 -c 5 -d 5`
echo $passwd |passwd --stdin user_$i
echo "user_$i $passwd" >>/usr/local/src/shell/user_passwd
done
解析:
-
seq -w 1 10
会打印出“01,02 ... 09, 10”-w 选项是等宽的意思,按照列中最大的宽度数字来,因为有10是两位,所有1个 数字时前面会补上一个0。
-
passwd=mkpasswd -l 15 -s 0 -C 5 -c 5 -d 5 设置mkpasswd变量。
参数含义: -l 定义密码长度,-s 定义特殊字符数,-C 定义大写字母数,-c 定义小写字母 数,-d 定义数字 的个数。
-
echo passwd |passwd --stdin user_i
参数含义:--stdin 用于标准输入管道读入新的密码,用于前面echo passwd 生成的密码 给后边变量user_i 用户创建密码
-
echo "user_passwd" >>/usr/local/src/shell/user_passwd
打印出用户密码信息,保存在user_passwd 文件中