linux大作业:用户管理系统
系统介绍
本次设计的用户管理系统是利用shell实现增加、删除、查找和显示用户信息,并可以批量对用户进行添加和删除操作的功能的简单系统。相对比较简单,如若有错的地方,请各位大佬见笑了。希望这篇文章能帮助有需要的人。
系统设计
程序主流程图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210108143006677.png)
各功能设计流程图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210108143233751.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hieXdhbGxpcw==,size_16,color_FFFFFF,t_70)
各功能作用:
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;ii}
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;ii}
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)删除用户不存在 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210108145247743.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hieXdhbGxpcw==,size_16,color_FFFFFF,t_70)
|