用户管理(一):使用shell脚本批量添加指定数量的用户

运行环境

CentOS 6.9、Xshell 5

前言

我们在需要创建多个用户的时候,使用手工单独创建是比较耗费精力的事情,我们可以通过shell脚本实现批量添加用户,实现指定数量用户、创建用户默认名、创建默认密码。

正文

① 关键命令

1、read命令从键盘读取变量的值,通常用在shell脚本中与用户进行交互的场合。该命令可以一次读取多个变量的值,变量和输入的值都需要使用空格隔开。

  • read(选项)(参数)
    -p:指定读取值时的提示符;
    -t:指定读取值时等待的时间(秒)。
read -p "text"  #打印提示(text),等待输入,并将输入存储在REPLY中。
read -t 3       #指定读取等待时间为3秒。

2、useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

  • useradd(选项)(参数)
useradd user001    #添加一个用户名为user001的用户

② 脚本文件

1、 创建一个脚本文件

mkdir sh    #创建一个名为sh的文件夹用于存放脚本文件
vim useradd.sh  #创建一个脚本文件

2、 编写脚本程序

#!/bin/bash
# 批量添加指定数量的用户
# 创建用户默认名
# 创建默认密码。

# 输入用户名,输入信息存入name变量中,限制30s的输入时间
read -p "Please input user name:" -t 30 name
# 输入需要创建的用户数量,存入num中,限制30s输入时间
read -p "Please input the number of users:" -t 30 num
# 输入需要创建的默认密码,存入pass中,限制30s输入时间
read -p "Please input the password of users:" -t 30 pass

# 用户名、用户数量、默认密码都输入成功之后
if [ ! -z "$name" -a ! -z "$num" -a ! -z "$pass" ]
        then
# 输入的num变量为数值类型
        y=$(echo $num | sed 's/[0-9]//g')
        if [ -z "$y"]
        then
# 创建用户
        for (( i=1;i<=$num;i=i+1))
                do
                # 用户名以输入用户名+序号组成 
                /usr/sbin/useradd $name$i &> /dev/null
                # 创建默认密码
                echo $pass | /usr/bin/passwd --stdin $name$i &> /dev/null
                done
        fi
fi

3、 更改脚本权限并执行

cd /root/sh/            # 切换到脚本目录
chmod 755 useradd.sh    #更改权限
./useradd.sh            #执行脚本

③ 测试结果

执行脚本后,假如我们的用户名为usertest、数量为20、默认密码为passwdtest
用户管理(一):使用shell脚本批量添加指定数量的用户_第1张图片
输入相关信息后,脚本执行时间大约几秒钟后,我们就批量创建好了用户,我们查看一下当前主机用户

cat /etc/passwd     # 查看当前用户

用户管理(一):使用shell脚本批量添加指定数量的用户_第2张图片

你可能感兴趣的:(Linux,运维)