3. 批量添加多个用户

批量创建多个用户的需求在生产环境下用的不多,但是经常会在面试时的笔试题上看到,本案例就是批量创建多个用户。具体要求如下:

1)批量创建100个用户;

2)用户名为user_01 - user_100;

3)给所有用户都设定一个随机密码,12位长度,且需要包含大小写字母及数字;

4)并把用户的密码保存到 /data/user_passwd 文件中;

5)这100个用户同属于users组。

参考脚本如下:

#!/bin/bash
#批量添加100个用户,user_01 - user_100

#检查是否有mkpasswd命令,没有则安装
if ! which mkpasswd $>/dev/null
then
    echo "没有mkpasswd命令,安装该命令:"
    yum install -y expect
fi

#判断 /data/user_passwd 文件是否存在
#若存在,应该先删除
[ -f /data/user_passwd ] && rm -rf /data/user_passwd

#100为三位数,只能遍历到99
for n in `seq -w 1 99`
do
    pass=`mkpasswd -l 12 -s 0`
    echo "添加用户user_100"
    
    useradd -g users user_$n
    echo "给用户user_$n设定密码"
    echo $pass | passwd --stdin user_$n
    echo "user_$n $pass" >> /data/user_passwd
done

pass=`mkpasswd -l 12 -s 0`
echo "添加用户user_100"
useradd -g users user_100
echo "给用户user_100设定密码"
echo $pass | passwd --stdin user_100
echo "user_100 $pass" >> /data/user_passwd

脚本中,

1)mkpasswd -s 指定特殊字符个数

2)如果遍历到100,那就是user_001 - user_100

3)passwd --stdin 从标准输入读取令牌,从而更改密码(只有root用户才能进行此操作)


猜你喜欢

转载自blog.csdn.net/miss1181248983/article/details/86186208
3.