linux大作业:用户管理系统

linux大作业:用户管理系统

系统介绍

本次设计的用户管理系统是利用shell实现增加、删除、查找和显示用户信息,并可以批量对用户进行添加和删除操作的功能的简单系统。相对比较简单,如若有错的地方,请各位大佬见笑了。希望这篇文章能帮助有需要的人。

系统设计

程序主流程图:

在这里插入图片描述

各功能设计流程图:

在这里插入图片描述

各功能作用:

1)查看当前用户信息:
输入选项1——执行操作——显示用户信息
2)添加新用户
输入选项2——执行操作——输入需要创建用户的用户名——输入账户密码——若用户不存在,则创建新用户;若用户存在,则进行用户的密码修改操作——按任意键清屏返回主界面。
3)删除用户
输入选项3——执行操作——输入需删除的用户名——若用户存在,则删除错误;若不存在,则提示无此用户。
4)寻找其他用户
输入选项4——执行操作——输入需查找的用户关键词——若存在,显示用户路径信息;若不存在,则做出提示。
5)批量添加用户
输入选项5——执行操作——输入需要添加的用户名主名——输入添加个数——用户添加成功,默认在用户名后面加1、2……作为添加的用户名,密码默认为用户名
6)批量删除用户
输入选项6——执行操作——输入删除的主用户名——输入删除个数——默认删除主用户名+1、2……的用户,若不存在,会提示;
7)退出系统
输入选项5——执行操作——退出系统。

系统实现

#! /bin/bash

function show()
{
clear;
echo "****************************************************************************";
echo "***                       欢迎使用用户管理系统                           ***";
echo "***                    1 : 列出当前用户所有信息                         ***";
echo "***                    2 : 添加新用户                                   ***";
echo "***                    3 : 删除用户                                      ***";
echo "***                    4 : 寻找其他用户                                  ***";
echo "***                    5 : 批量添加用户                                  ***";
echo "***                    6 : 批量删除用户                                  ***";
echo "***                    7 : 退出系统                                     ***";
echo "****************************************************************************";
echo "请为您需要的功能选择号码!";
echo "请输入你的选择:";
}

function List_users()
{
        awk -F: '{print "id "$1}' /etc/passwd | bash;
}

function Add_a_user()
{
	user="$1"
        pwd="$2"
        useradd "$user" # 添加账户
        echo "$pwd" | passwd --stdin "$user" # 设置密码
     
        if [[ "$?" == 0  ]];
        then
        echo "用户已经创建成功"
    fi
}

function Delete_a_user()
{
       user="$1"
 
    userdel "$user" # 删除用户
     
    if [[ "$?" == 0 ]];
       then
        echo "已经删除${user}用户"
    fi
}

function Find_a_user()
{
        read -p "请输入要查找的用户名:" user3;
        grep -n "$user3" /etc/passwd;
        if [ $? -eq 1 ]
 then
        echo "用户不存在!";
fi
}


function create_users(){
    user="$1"
    pwd="$2"
    num="$3"
    for ((i=1;i<=$num;i++))
    do
        username=${user}${i}
        useradd "$username" # 添加用户
        if [ $? -ne 0 ];then
            echo "user exist"
        fi
        echo "$pwd" | passwd --stdin "$username" # 设置密码
	

        if [[ "$?" == 0  ]];
           then
            echo "用户已经创建成功"
        fi
    done

}

function delete_users(){
    user="$1"
    num="$2"
     for ((i=1;i<=$num;i++))
     do
       username=${user}${i}
       userdel -r "${username}" # 删除用户
        if [[ $?  -eq 0 ]];
           then
            echo "已经删除${username}用户"
        else
                echo "user $username does not exist"
        fi
     done

}

function Quit()
{
                        echo "Bye bye!";
                        exit 0;
}

function main()
{
for i in $(seq 1 100)
do
show;
read choice;
case $choice in
        1)List_users;;
        2)
	read -p "请输入需要创建的用户名:" uname
        read -p "请给该账户设置一个密码:" passwd
	Add_a_user "$uname" "$passwd"
	;;
        3)
	read -p "请输入需要删除的用户名:" uname
	Delete_a_user "$uname"
	;;
        4)Find_a_user;;
        
	5)read -p "请输入需要创建的用户名:" uname
            read -p "请输入创建的个数:" num
            passwd="123456"
           create_users "$uname" "$passwd" "$num"

        ;;
	6)read -p "请输入需要删除的用户名:" uname
            read -p "请输入需要删除的个数:" num
            delete_users "$uname" "$num"
	;;
	7)Quit;;
	*)echo "Incorrect input!";;
esac
read delay;
if [ $i -eq 100 ];
then
        echo "error";
        clear;
        break;
fi
done
}
main;

测试结果(如下截图)

1.输入除功能选项外的其他字符(提示输入错误)
在这里插入图片描述
2.输入功能选项1(列出当前用户所有信息)
在这里插入图片描述
3.输入功能选项2(添加新用户)
用户不存在时:
在这里插入图片描述
用户已存在的情况:
在这里插入图片描述
4.功能选项3(删除用户)
删除已存在用户
在这里插入图片描述
删除不存在用户:
在这里插入图片描述
5.功能选项4(寻找其他用户)
寻找系统中有关键词存在的用户:
在这里插入图片描述
寻找关键词不存在的用户:
在这里插入图片描述
6.选项功能5(批量添加用户)
在这里插入图片描述
7.选项功能6(批量删除用户)
1)删除用户存在
在这里插入图片描述
2)删除用户不存在
在这里插入图片描述


版权声明:本文为hbywallis原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。