Centos添加删除用户和组(脚本-案例实战)

要求

1、脚本支持创建普通用户
2、支持创建多个用户或者列表用户添加
3、支持LINUX用户删除
4、支持LINUX系统组删除
5、支持对某个用户修改密码

内容

#!/bin/bash
#by auther toyix
#202071110:12:03
#auto add and del user/group
############################

#创建用户
function ADDUSER () {
        read -p "是否导入用户列表 YES|NO:" YES_NO
        while [ -z ${YES_NO} ]
        do
                        read -p "是否导入用户列表 YES|NO:" YES_NO
        done

        if [ ${YES_NO} == "YES" ];then
                read -p "请输入全路径及文件名:" USERNAME_LIST

                while [ -z ${USERNAME_LIST} ]
                do
                                read -p "请输入全路径及文件名:" USERNAME_LIST
                done

                if [ ! -f "${USERNAME_LIST}" ];then
                        echo "文件${USERNAME_LIST}不存在!"
                        exit 1
                fi

                USERNAME=`cat ${USERNAME_LIST}`
                echo -e "\033[32m---导入中---\033[0m"
                sleep 3

                #是否创建为普通用户
                read -p "是否创建为普通用户 YES|NO:" PT_user_Y_N
                while [ -z ${PT_user_Y_N} ]
                do
                                read -p "是否创建为普通用户 YES|NO:" PT_user_Y_N
                done
                if [ $PT_user_Y_N == "NO" ];then
                        read -p "请输入新用户的所属组名 :" GROUPADD
                        while [ -z ${GROUPADD} ]
                        do
                                read -p "请正确输入新用户的所属组名 :" GROUPADD
                        done
                        cat /etc/group |grep $GROUPADD
                        if [ $? -ne 0 ];then
                                        groupadd $GROUPADD 
                        fi

                        #创建用户
                        for USERNAME in $USERNAME
                        do
                                useradd -s /sbin/nologin -r $USERNAME -g $GROUPADD
                                case $? in
                                                0)
                                                echo "用户${USERNAME}创建成功"
                                                ;;
                                                9)
                                                echo "用户${USERNAME}已存在"
                                                ;;
                                                *)
                                                echo "用户${USERNAME}创建失败,请检查权限等"
                                esac
                        done
                fi
                if [ $PT_user_Y_N == "YES" ];then
                        read -p "请输入新用户的所属组名 :" GROUPADD
                        while [ -z ${GROUPADD} ]
                        do
                                read -p "请正确输入新用户的所属组名 :" GROUPADD
                        done
                        cat /etc/group |grep $GROUPADD
                        if [ $? -ne 0 ];then
                                        groupadd $GROUPADD 
                        fi

                        #创建用户
                        for USERNAME in $USERNAME
                        do
                                useradd $USERNAME -g $GROUPADD
                                case $? in
                                                0)
                                                echo "用户${USERNAME}创建成功"
                                                ;;
                                                9)
                                                echo "用户${USERNAME}已存在"
                                                ;;
                                                *)
                                                echo "用户${USERNAME}创建失败,请检查权限等"
                                esac
                        done
                fi

        fi

        if [ ${YES_NO} == "NO" ];then
                read -p "请输入新添加的用户名,单个或多个:" USERNAME
                while [ -z ${USERNAME} ]
                do
                        read -p "请输入要新添加的用户名:" USERNAME
                done

        read -p "请输入新用户的所属组名 :" GROUPADD
                while [ -z ${GROUPADD} ]
                do
                        read -p "请正确输入新用户的所属组名 :" GROUPADD
                done
        cat /etc/group |grep $GROUPADD
        if [ $? -ne 0 ];then
                groupadd $GROUPADD 
        fi

                for USERNAME in $USERNAME
                do
                        useradd -s /sbin/nologin -r $USERNAME -g $GROUPADD
                        case $? in
                                        0)
                                        echo "用户${USERNAME}创建成功"
                                        ;;
                                        9)
                                        echo "用户${USERNAME}已存在"
                                        ;;
                                        *)
                                        echo "用户${USERNAME}创建失败,请检查权限等"
                        esac
                done
                exit 
        fi


}

#删除用户
function DELUSER () {
        read -p "请输入要删除的用户名,单个或多个,以空格分隔 :" DEL_USERNAME
                while [ -z $DEL_USERNAME ]
                do
                        read -p "请输入要删除的用户名,单个或多个,以空格分隔 :" DEL_USERNAME
                done

                for USERNAME in ${DEL_USERNAME}
                do
                        userdel $DEL_USERNAME
                        id $DEL_USERNAME
                        if [ $? -ne 0 ];then
                                        echo "用户${DEL_USERNAME}已删除"
                        else
                                        echo "用户${DEL_USERNAME}删除失败"
                        fi
                done
                exit
}

#修改用户密码
function ALTER_USER_PWD () {
        read -p "请输入要修改密码的用户名 :" USERNAME_ALTERPWD
                while [ -z $USERNAME_ALTERPWD ]
                do
                        read -p "请输入要修改密码的用户名 :" USERNAME_ALTERPWD
                done

                id $USERNAME_ALTERPWD
                if [ $? -ne 0 ];then
                        echo "用户${USERNAME_ALTERPWD}不存在,请先创建"
                        exit 1
                else
                        passwd $USERNAME_ALTERPWD
                        id $USERNAME
                        while [ $? -ne 0 ]
                        do
                                echo "密码输入不正确,请重新输入,Ctrl + c 退出"
                                passwd $USERNAME_ALTERPWD
                        done
                        echo "密码修改成功"
                        exit 0
                fi
}

#创建组
function CREATE_GROUP () {
                read -p "请输入新组名,单个或多个,以空格分隔:" GROUPADD_NAMES
                while [ -z "${GROUPADD_NAMES}" ]
                do
                        read -p "请输入新组名,以空格分隔:" GROUPADD_NAMES
                done
                for GROUPADD_NAME in ${GROUPADD_NAMES}
                do
                        groupadd ${GROUPADD_NAME}
                        cat /etc/group |grep $GROUPADD_NAME
                        if [ $? -eq 0 ];then
                        echo "组"${GROUPADD_NAME}"创建成功"
                        else
                                echo "组"${GROUPADD_NAME}"创建失败,请检查权限等"
                        fi
                done
                exit
}

#删除组
function DEL_GROUP () {
                read -p "请输入要删除的组名,单个或多个,以空格分隔:" GROUPDEL_NAME
                while [ -z "${GROUPDEL_NAME}" ]
                do
                        read -p "请输入要删除的组名,以空格分隔:" GROUPDEL_NAME
                done

                for GROUPDEL_NAME in $GROUPDEL_NAME
                do
                        groupdel $GROUPDEL_NAME
                        if [ $? -ne 0 ];then
                                echo "组${GROUPDEL_NAME}删除失败,请检查此组下存在用户"
                        else
                                echo "组${GROUPDEL_NAME}删除成功!!!"
                        fi
                done
                exit
}

PS3="alter user choose "1",alter group choose "2" :"
select CHOOSE_U_G in user group
do
        break
done 

#添加删除用户
if [ ${CHOOSE_U_G} == "user" ];then 
        PS3="添加用户按 "1",删除用户按 "2",修改密码按“3” :"
        select USER_A_D in add del alter
        do
                break
        done

        case $USER_A_D in
                add)
                ADDUSER
                ;;
                del)
                DELUSER
                exit 0 
                ;;
                alter)
                ALTER_USER_PWD
                exit
                ;;
                *)
                echo "请选择,添加或删除用户"
        esac

elif [ ${CHOOSE_U_G} == "group" ];then
        PS3="添加组 "1",删除组 "2" :"
        select GROUP_A_D in add del
        do
                break
        done

        case $GROUP_A_D in
                add)
                        CREATE_GROUP
                ;;
                del)
                        DEL_GROUP
                ;;
                *)
                echo "请选择,添加或删除组"
        esac

fi

执行结果

创建用户
在这里插入图片描述
改密码
在这里插入图片描述

注:

脚本功能较多,没有一一验证,欢迎来找茬

猜你喜欢

转载自blog.csdn.net/oToyix/article/details/107283670