您的位置:首页 > 运维架构 > Shell

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

2017-09-08 11:30 1331 查看

运行环境

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




输入相关信息后,脚本执行时间大约几秒钟后,我们就批量创建好了用户,我们查看一下当前主机用户

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


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: