Shell脚本批量添加和删除用户的多种方法

关于颜色:

shell中给文本添加颜色的三种表达方式:

echo   -e   “\e[32m  \e[0m”
echo   -e   “\033[32m   \033[0m”
echo   -e   “\e[32;40m   \e[0m”   32;40前面的数是字体颜色,后面的数是背景颜色

echo加上-e参数后表示可以处理特殊字符,比如\n \t等,,中间空格部分代表要填入的内容,例如:

31代表红色,40代表黑色,输出结果就是红色字体,黑色背景。

实例1.批量添加用户方法1

seq命令产生从某个数到另外一个数之间的所有整数

#!/bin/bash
#产生一个用户组
groupadd student
for i in `seq 1 5`
do
     #将student1 2 3 4 5 添加到student组中
     useradd -G student student$i;
     #设置密码的第一种方式,passwd --stdin用于从标准输入管道读入密码
     echo student$i | passwd student$i --stdin;
done

实例2.批量添加用户方法2

#!/bin/bash
password="123456"
for  USER  in  user1  user2  user3
do
     useradd  -m  $USER
     #设置密码的第二种方式,echo -e表示认识各种符号,比如\n \t等
     #因为密码需要验证,一共输入两遍,所以加上\n
     echo  -e  "${password}\n${password}" | passwd  $USER
done

实例3.批量添加用户方法3

#!/bin/bash
DATE=$(date +%F__%T)
#创建一个文件用于记录账号密码
USER_FILE=user.txt
#为输入的内容设置颜色
echo_color(){
        if [ $1 == "green" ];then
                echo -e "\e[32m$2\e[0m"
        elif [ $1 == "red" ];then
                echo -e "\033[31;40m$2\033[0m"
        fi
}
# 如果user.txt存在且大小大于0就改名备份
if [ -s $USER_FILE ];then
        mv $USER_FILE ${USER_FILE}-${DATE}.bak
        echo_color green "$USER_FILE exits, rename ${USER_FILE}-${DATE}.bak"
fi

echo -e "User\tPassword" >> $USER_FILE
echo -e "-------------" >> $USER_FILE

for USER in stt{1..5};
do
        #如果该用户不存在,如果用户存在id $user会输出正确信息
        if ! id $USER &>/dev/null; then
                #产生一个随机数密码
                PASS=$(echo $RANDOM | md5sum | cut -c 1-8)
                useradd $USER
                echo $PASS | passwd --stdin $USER &>/dev/null
                echo -e "$USER\t$PASS" >> $USER_FILE
                echo_color green "$USER successfully created"
        else
                echo_color red "$USER already exits!"
        fi
done

实例4.批量添加用户4

#!/bin/bash
groupadd class1
i=1
while [ $i -le 30 ]
do
        if [ $i -le 9 ];then
                USERNAME=stu0${i}
        else
                USERNAME=stu${i}
        fi
#useradd -M表示创建user后不生成home目录,然后自己创建
useradd -M $USERNAME
mkdir /home/$USERNAME
chown -R $USERNAME /home/$USERNAME
chgrp -R class1 /home/$USERNAME
let i++
done

实例5.批量删除用户

#!/bin/bash
i=1
while [ $i -le 5 ]
do
        userdel -r stt${i}
        i=$[$i+1]
done
发布了54 篇原创文章 · 获赞 604 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_41973594/article/details/102760747