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代表黑色,输出结果就是红色字体,黑色背景。
#!/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
#!/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