bash脚本学习--批量增删用户

最近进度有点慢,跟着《私房菜》学习进行到了Linux ACL权限设置这一章节,由于书中经常有加账号和删除账号的操作,就觉得太繁琐了,正好可以拿这个来继续巩固下前一章脚本编写的基础。话不多说进入正题。

本脚本实现的功能是根据用户输入的选项来选择是“添加”还是“删除”账号,以下是脚本代码。

#!/bin/bash
#Program:
#       This program will batch add accounts.
#History:
#2016/04/14     MG      First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

echo "Input your operation:"                #选项说明
echo "1.Option 1 is add user account."
echo "2.Option 2 is del user account."
echo ""
while [ -z "$op" ]                                  #进行判断用户是否有输入
    do
        read -p "Enter  your operation: " op    #用户输入选项
done
case $op in                                     #对操作进行判断
    "1")
        while [ -z "$usr" ]                     #判断用户输入账号名是否为空
        do
            read -p "Input your user account: " usr
        done
        read -p "input add quantity: " nu

        chg=$(cut -d: -f1 /etc/passwd |grep $usr)  #搜索系统是否有该账号
        if [ "$chg" == "" ];then
            read -p "input add quantity: " nu      #输入要创建的账号
            nu=${nu:-1}                            #如果用户没输入则默认为一个
            for (( i=1;i<=$nu;i++ ))
               do
#                   echo $usr$i
                    useradd -c "$usr$i" $usr$i
                    echo "$usr$i"|passwd --stdin $usr$i #   批量为用户添加密码,不显示添加后的回显信息
                    chage -d 0 $usr$i       #强制新用户第一次登陆时更改密码
           done
           echo "$nu  accounts added successfully!"
        else
           echo "The user $usr  account is exist."
           exit 1
        fi
 
 
     ;;
    "2")
         read -p "Enter your account: " users
         if [ ! -z "$users" ];then
             usr=$(grep $users /etc/passwd |cut -d: -f1)
             for user in $usr
             do
#                  echo $user
                   read -p  "Are you sure to del this account?" yn
                   if [ "$yn" == "y" -o "$yn" == "Y" ];then
                      userdel -r $user && echo "$user accont deleted successfully!"|| echo "Delete failed!"
                   else
                      echo "You have cancel this operation."
                      exit 0
                   fi
             done
         fi

      ;;
esac

该脚本还是不够完善,比如创建账号的时候如果之中存在了“test"账号,那就无法以test为开头创建test2等等账号了,还有一些其他的问题等之后再慢慢补充吧,每天写一点就会有进步。

(PS. 英文太差凑活看吧,都是中式英语o(╯□╰)o)

时间: 2024-10-10 21:35:31

bash脚本学习--批量增删用户的相关文章

shell脚本之批量添加用户

没错,这是一个简单的脚本,不写不知道,写了才发现自己有多少不足. 下面的脚本主要用于批量添加用户的脚本,本来很简单的脚本,但是添加了一些判断,验证自己学习. 1.判断用户输入是否有误 2.判断用户是否存在,存在就跳过不再处理 代码如下: #/bin/bash #批量添加用户脚本   #判断用户是否存在函数 function panduan()     {         for nametmp in $(cat /tmp/user.txt)             do             

(转)通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加

通过shell脚本实现批量添加用户和设置随机密码以及生产环境如何批量添加 原文:http://www.21yunwei.com/archives/4773 有一个朋友问我如何批量创建用户和设置密码 ,我就简单给他写了两个脚本,让他自己参考下并自己根据实际情况进行修改,毕竟他需要的用户名和密码都是实际生产环境的. 这里分两种情况,一种是测试for循环批量添加用户,一个是根据实际生产环境进行批量添加.分别写一下案例如下:1,for添加指定类型用户以及设置随机密码.脚本作用:批量添加user1-10用

用Bash脚本将Linux普通用户添加为系统管理员

将Linux普通用户添加为系统管理员在Gnome或KDE这样强大与完善的桌面环境下是非常简单的事情,一般来说在用户设置的对话框里就直接有相应选项.不过,出于简洁与高效的风格,自己目前并未使用这些高端但吃内存的“重量级”桌面环境,使用的就是最基本的X视窗+Sawfish窗口管理器的组合.在这样的环境下进行用户管理,都是通过命令行来完成.如,使用useradd命令添加新用户.不过,由useradd命令添加的用户只具有普通使用者的权限,不具备系统管理的能力.这样一来,就给一些常见的操作带来不便,如,使

Bash脚本实现批量作业并行化

在Linux下运行作业时, 经常会遇到以下情形: 有大量作业需要运行,完成每个作业所需要的时间也不是很长. 如果我们以串行方式来运行这些作业,可能要耗费较长的时间; 若采用并行方式运行则可以大大节约运行时间.再者, 目前的计算机绝大部分都是多核架构, 要想充分发挥它们的计算能力也需要并行化.总结网上看到的资料,利用Bash脚本,可以采用下面几种方法实现批量作业的并行化.注意,下面论述中将不会区分进程和线程,也不会区分并行和并发. 1. 采用GNU的paralle程序 parallel是GNU专门

Shell脚本学习笔记-用户输入处理

1. 命令行参数 1.1 参数之间空格分隔,格式:$+position, e.g. $0, $1, $2,  其中$0表示脚本名字,超过10个参数时,e.g. 第10个参数用${10}表示: 1.2 简单示例: 1.3 通过建立软连接的方式,同一个脚本,根据不同脚本名字,运行不同脚本内容,e.g.: 2. 命令行参数变量的处理 2.1 通过条件判断,进行错误检测: 2.2 通过shift命令,进行移动位置参数: 2.3 命令行参数选项处理: 2.3.1 简单选项处理,e.g.: 2.3.2 分离

shell脚本之批量删除用户

1 #!/bin/bash 2 for i in {1..10};do 3 if id user$i &> /dev/null;then 4 userdel -r user$i &>/dev/null 5 echo "user$i is deleted" 6 else 7 echo "This user isn't exist" 8 fi 9 done 原文地址:https://blog.51cto.com/11342825/242496

shell批量创建用户

#!/bin/bash cat << EOF ************************************************************ 批量添加用户并随机生成8个字符串作为其密码 www.tianfeiyu.com ************************************************************ EOF admin=feiyu #定义所要添加用户的前缀名 [ -f /etc/init.d/functions ] &

企业实战脚本案例2:批量创建用户并设置初始密码

批量创建用户并设置初始密码 目录: 1.脚本功能介绍 2.脚本制作技术需求 2.1 useradd命令 2.2 id命令 2.3 passwd命令 2.4 随机密码 2.5 while循环+case+select 3.脚本编写案例 一.脚本功能介绍 在企业中生产或运维中,经常会遇到VPN服务器.企业网盘.企业邮箱.云桌面私有账号等等一系列的服务器.当批量新员工入职时,经常需要批量账号分配给新员工,若此类账号存储在数据库时,管理员可根据公司账号命名规范通过专有图形化系统进行录入账号,若账号存储在系

Shell脚本批量创建用户并随机生成密码

要求:批量创建10个系统账号oldboy01-oldboy10,并设置生成密码(密码不同). 实现脚本: #!/bin/bash #Question3 for i in $(seq -w 10) do         useradd -s /bin/bash oldboy$i         echo "password$i" | md5sum | tee -a passwd.txt | passwd --stdin  oldboy$i done 脚本执行效果: [[email pro