shell脚本-批量添加用户

批量添加用户,要求如下

脚本一:不是很严格但是很简洁的脚本

#!/bin/bash

 #该脚本用来实现批量添加用户。
  #
  #作者阿鑫
  #日期2019/5/27
  #版本v1


#提示用户脚本使用方法
[ $# -eq 0 ] && echo "Usage useradd.sh number" && exit
#判断是否存在/data/user_passwd,若存在则移动该文件,做备份。
if [ -f /data/user_passwd ];then
        mv /data/user_passwd /data/user_passwd.bak-`date +%F`
else
        echo "hello" > /dev/null
fi
##使用for循环创建用户
##passwd从标准输入读取密码,并使用tee命令保存密码到/data/user_passwd
for (( i=1;i<=$1;i++ ));do
        useradd -g users user_$i
        echo ` openssl  rand -base64  8 ` | tee -a /data/user_passwd | passwd user_$i --stdin
done

脚本二:在脚本一中密码可以使用专门的密码命令mkpasswd,实现更丰富的密码规则。

    并且脚本一也存在一个问题,就是用户名要求为user01的格式。

    /data/user_passwd只保存了秘密没有保存用户名。

    脚本二解决了这些问题

#!/bin/bash
#该脚本用来实现批量添加用户。
#作者阿鑫
#日期2019/5/27
#版本v1

#查看是否安装了mkpasswd命令
which mkpasswd &>/dev/null || yum install -y mkpasswd

#提示用户脚本使用方法
[ $# -eq 0 ] && echo "Usage useradd.sh number" && exit

#判断是否存在/data/user_passwd,若存在则移动该文件,做备份。
if [ -f /data/user_passwd ];then
        mv /data/user_passwd /data/user_passwd.bak-`date +%F`
else
        echo "hello" > /dev/null
fi

##使用for循环创建用户
##passwd从标准输入读取密码,并使用tee命令保存密码到/data/user_passwd
for i in `seq 99`;do
        useradd -g users user_$i
        pass=`mkpasswd -l 12 -s 0`
        echo $pass | passwd  --stdin user_$i
        echo "user_$i $pass" >> /data/user_passwd
done

#单独创建用户user_100
useradd -g users user_100
echo 'mkpasswd -l 12 -s 0' | tee -a /data/user_passwd | passwd user_100 --stdin

echo “用户创建完成”,密码保存在/data/user_passwd

 

原文地址:https://www.cnblogs.com/wxxjianchi/p/13620855.html