shell-1

这是一个用Shell编写的用户管理系统,包括添加用户、修改用户信息、删除用户、管理用户组等功能。用户可以输入选项选择相应的操作,如创建新用户时会检查UID是否已存在,并使用chpasswd更新密码。
Document
			#!/bin/bash

function addSingleUser() {
control=1
while [ $control -eq 1 ]; do
declare -i U
read -p "请输入 用户名: " name
read -p "请输入 UID: " U
read -p “请输入 密码: " Passwd
id -u KaTeX parse error: Expected 'EOF', got '&' at position 19: …e >/dev/null 2>&̲1 if [ …?” == “0” ]; then
echo “用户 $name 已存在”
else
useradd -m -u U−d/home/U -d /home/Ud/home/name -s /bin/bash -g root $name
echo name:{name}:name:Passwd >chpass1.txt
chpasswd <chpass1.txt
control=0
echo “创建成功!”
cat /etc/passwd | grep $name
fi
done
}

function changeSingleUserInfo() {
echo “1. 更新 用户名”
echo “2. 更新 密码”
echo “3. 更新 UID”
echo “4. 更新 GID”
read -p "请输入菜单选项: " number
if [ $number -eq 1 ]; then
read -p "请输入待修改的用户名: " oldname
read -p “请输入新的用户名: " username
usermod -l $username $oldname
echo “更新成功!”
cat /etc/passwd | grep $username
elif [ number−eq2];thenread−p"请输入要修改的用户名:"opasswdread−p"请输入新的密码:"npasswdecho"number -eq 2 ]; then read -p "请输入要修改的用户名: " opasswd read -p "请输入新的密码: " npasswd echo "numbereq2];thenreadp":"opasswdreadp":"npasswdecho"opasswd:$npasswd” | chpasswd
echo “更新成功!”
cat /etc/shadow | grep $opasswd
elif [ $number -eq 3 ]; then
read -p "请输入要修改的用户名: " oUID
read -p "请输入新的UID: " nUID
usermod -u $nUID $oUID
echo “更新成功!”
cat /etc/passwd | grep $oUID
elif [ $number -eq 4 ]; then
read -p "请输入要修改的用户名: " oGID
read -p "请输入新的GID: " nGID
usermod -g $nGID $oGID
echo “更新成功!”
else
echo “输入有误!”
fi

}

function deleteSingleUser() {
read -p "请输入要删除的用户名: " user2
grep “$user2” /etc/passwd >/dev/null
if [ $? -eq 0 ]; then

    read -p "是否删除home目录?(是: 1, 否: 2)" sel
    if [ $sel -eq 1 ]; then
        userdel $user2
        rm -f /home/$user2
    elif [ $sel -eq 2 ]; then
        userdel $user2
    else
        echo "输入有误!"
        return
    fi
    echo "删除成功!"
else
    echo "用户不存在!"
fi

}

function groupAddSetGID() {
echo “创建用户组(设置GID: 1, 默认GID: 其他键)”
read -p “: " choose
if [ $choose -eq 1 ]; then
control=1
while [ control−eq1];doread−p"请输入用户组名:"hellogroup=control -eq 1 ]; do read -p "请输入用户组名: " hello group=controleq1];doreadp":"hellogroup=hello
id -g KaTeX parse error: Expected 'EOF', got '&' at position 20: …p >/dev/null 2>&̲1 i…?” == “0” ]; then
echo “用户组 $group 已存在”
else
while [ $control -eq 1 ]; do

                declare -i GID
                read -p "请输入 GID: " GID
                id -g $GID >/dev/null 2>&1
                if [ "$?" == "0" ]; then
                    echo "GID $GID 已存在"
                else
                    control=0
                fi
            done
        fi
    done
    groupadd -g $GID $group
    if [ $? -eq 0 ]; then
        echo "创建成功!"
        cat /etc/group | grep $group
    else
        echo "创建失败!"
    fi
else
    control=1
    while [ $control -eq 1 ]; do
        read -p "请输入组名: " hello
        group=$hello
        id -g $group >/dev/null 2>&1
        if [ "$?" == "0" ]; then
            echo "用户组 $group 已存在。"
        else
            groupadd $group
            if [ $? -eq 0 ]; then
                echo "创建成功!"
                cat /etc/group | grep $group
            else
                echo "创建失败!"
            fi

            control=0
        fi
    done
fi

}

function updateGroupNameAndGID() {
echo “更改用户组(更改组名: 1, 更改GID: 其他键)”

read -p "请输入选项: " choose
if [ $choose == 1 ]; then
    read -p "请输入待更改的组名: " original #original  groupname
    group=$orignial
    read -p "请输入新的组名: " change
    group=$change
    groupmod -n $change $original
    cat /etc/group | grep $change
else
    control=1
    while [ $control -eq 1 ]; do
        read -p "请输入待更改的组名: " groupname
        group=$groupname
        id -g $groupname >/dev/null 2>&1
        if [ "$?" == "0" ]; then
            echo "用户组不存在,请重新输入。"
            break
        else
            control=0
        fi
    done

    control=1
    while [ $control -eq 1 ]; do

        declare -i GID
        read -p "请输入 GID: " GID
        id -g $GID >/dev/null 2>&1
        if [ "$?" == "0" ]; then
            echo "GID $GID 已存在,请重新输入。"
        else
            groupmod -g $GID $groupname
            control=0
        fi
    done
    cat /etc/group | grep $groupname
fi

}

function deleteGroup() {
read -p "请输入待删除的用户组名: " deleteGroupName
groupdel -f $deleteGroupName | echo “删除成功!”
}

function checkUserGroup() {
echo “查询用户组(单个用户组: 1, 所有用户组: 其他键)”
read -p "请输入选项: " choose
if [ $choose == 1 ]; then

    control=1
    while [ $control -eq 1 ]; do
        read -p "请输入要查询的用户组名: " group
        id -g $group >/dev/null 2>&1
        if [ "$?" == "0" ]; then
            control=0
        else
            cat /etc/group | grep $group
            control=0
        fi
    done
else
    cat /etc/group
fi

}

function CheckUserInfo() {
echo “查询用户(单个用户: 1, 所有用户: 其他键)”
read -p “请输入选项: " choose
if [ choose−eq1];thenread−p"请输入要查找的用户名:"user3grep−n"choose -eq 1 ]; then read -p "请输入要查找的用户名: " user3 grep -n "chooseeq1];thenreadp":"user3grepn"user3” /etc/passwd
if [ $? -eq 1 ]; then
echo “用户不存在!”
fi
else
cat /etc/passwd
fi
}

function menu() {
show
read -p "请输入选项: " number
while [ $number -ne 0 ]; do
if [ $number -eq 1 ]; then
addSingleUser
elif [ $number -eq 2 ]; then
changeSingleUserInfo
elif [ $number -eq 3 ]; then
deleteSingleUser
elif [ $number -eq 4 ]; then
CheckUserInfo
elif [ $number -eq 5 ]; then
groupAddSetGID
elif [ $number -eq 6 ]; then
updateGroupNameAndGID
elif [ $number -eq 7 ]; then
deleteGroup
elif [ $number -eq 8 ]; then
checkUserGroup
else
echo “输入有误,请重新输入”
fi
show
read -p "请输入选项: " number
done
}

function show() {
echo “”
echo “######################################”
echo " ---------- 用户管理系统 ----------"
echo " 0. 退出系统"
echo " 1. 添加用户"
echo " 2. 更新用户信息"
echo " 3. 删除用户"
echo " 4. 查询用户信息"
echo " 5. 添加用户组与GID"
echo " 6. 更新用户组的名和GID"
echo " 7. 删除用户组"
echo " 8. 查询用户组信息"
echo “######################################”
echo “”
}

menu

	</pre>
</div>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值