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版权协议,转载请附上原文出处链接和本声明。