天天看点

编写脚本批量添加、删除用户

环境要求:

编写相应脚本用来批量添加用户;

要求提供交互功能,当管理员执行该脚本时,可以根据提示指定需添加的用户数量(少于100)、用户名前缀、并能够设置这些用户账户的失效时间,初始密码;

用户名编号统一使用两位数,如使用”01”、”02”、”03”的形式,而不是”1”、”2”、”3”的形式。

并编写对应的批量删除用户脚本,要能够通过命令行参数指定用户名前缀,执行脚本后删除所有使用了该前缀的用户账户,但要防止删除root用户。

批量添加用户脚本:

1、新建批量添加用户脚本useradd.sh

截图如下:

编写脚本批量添加、删除用户

内容如下:

#!/bin/bash

read-p"input nu <1-99>:"nu

read-p"input name:"name

read-p"input date <YYYY-MM-DD>:" date

read-p"input password:"password

a=1

if[ $nu -lt 100 ]

then

while[ $a -le $nu ]

do

if[ $a -lt 10 ]

then

useradd-e $date "$name"0"$a"

echo "$passwd" | --stdin "$name"0"$a"&> /dev/null

else

useradd-e $date "$name""$a"

echo "password" | passwd --stdin "$name""$a"&> /dev/null

fi

a=`expr $a + 1`

done

fi

2、给脚本useradd.sh增加x权限

编写脚本批量添加、删除用户

3、执行脚本useradd.sh,添加以hello和www为前缀的用户:

4、验证结果:查看/etc/passwd文件是否添了新用户:

编写脚本批量添加、删除用户

tail -16/etc/passwd 

编写脚本批量添加、删除用户

批量删除用户:

1、批量删除用户脚本userdel.sh

截图如下:

编写脚本批量添加、删除用户

内容如下:

#!/bin/bash

if [ $# -le 0 ]

then

echo"Error:The prefix of users has not be specified."

echo"usage:$0nameprefix"

exit1

fi

tar jcvf /root/usrs.cnf.tar.gz /etc/passwd /etc/shadow /etc/group &> /dev/null

usersdel=`grep "$1" /etc/passwd | cut -d ":" -f 1 | grep -v "root"`

for u in $usersdel

do

userdel -r $u &> /dev/null

done 

2、给脚本userdel.sh增加x权限:

编写脚本批量添加、删除用户

3、执行脚本userdel.sh,删除上边新建用户。如userdel.sh  hello 或userdel.sh  www

编写脚本批量添加、删除用户

4、验证结果:查看/etc/passwd文件中已删除的用户是否还存在。发现只剩系统服务用户。

编写脚本批量添加、删除用户

总结:批量新建用户,在实际生产环境中有很多种方法,不只for语句一种添加方式。