博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用户管理系统
阅读量:4958 次
发布时间:2019-06-12

本文共 2203 字,大约阅读时间需要 7 分钟。

#!/bin/bash

#用户管理系统

#判断用户是否存在`

panuser(){
cat /etc/passwd | awk -F':' '{print $1}' | grep -q ^$1$
if [ $? -eq 0 ];then
return 1 #表示用户存在
else
return 2 #表示用户不存在
fi
}

#创建用户

createuser(){
panuser $1 #判断存在提示,不存在创建
if [ $? = 1 ];then
echo "用户已经存在,无需创建"
return 1
else
useradd $1
if [ $? -eq 0 ];then
echo "创建用户成功!"
return 1
else
echo "创建用户失败!"
return 2
fi
fi
}
#删除用户
deluser(){
panuser $1 #判断存在删除,不存在提示
if [ $? = 1 ];then
echo "用户存在正在删除...."
userdel -r $1
panuser $1
if [ ! $? -eq 0 ];then
echo "删除成功!"
return 1
else
echo "删除失败!!!"
deluser $1
return 2
fi
return 1
else
echo "用户不存在!!!"
return 2
fi
}

#判断用户是否被锁

pan_user(){
cat /etc/shadow |grep -w $1 | awk -F':' '{print $2}' | grep -q ^\!
if [ $? -eq 0 ];then
return 2 #表示已经锁定
else
return 1 #表示没有锁定
fi
}

#锁定用户

suo_user(){
pan_user $1 #判断没锁锁定,锁了提示
if [ $? -eq 1 ];then
passwd -l $1 &> /dev/null
if [ $? -eq 0 ];then
echo "锁定账号成功!"
return 1
else
echo "锁定账号失败"
return 2
fi
else
echo "账号已经被锁定,无需再锁定!!!"
return 2
fi
}

#解锁用户

jie_user(){
pan_user $1 #判断锁了解锁,没锁提示
if [ $? -eq 2 ];then
passwd -uf $1 &> /dev/null
if [ $? -eq 0 ];then
echo "解锁账号成功!"
return 1
else
echo "解锁账号失败"
return 2
fi
else
echo "账号没有被锁定,无需解锁!!!"
return 2
fi

}

#查看用户

cha_user(){
panuser $1 #判断存在查看,不存在提示
if [ $? = 1 ];then
finger $1
else
echo "账户不存在!!!"
fi

}

#退出

tui(){ #退出提示3秒后退出
echo "正在退出脚本......"
sleep 3
exit
}

#主界面

echo "
//========================================================\\\\
| 用户管理系统 |
-----------------------------------------------------------
| 1、创建用户 |
| 2、删除用户 |
| 3、锁定用户 |
| 4、解锁用户 |
| 5、查看用户 |
| 6、退出脚本 |
-----------------------------------------------------------
"
#无限循环实现菜单选择
while true
do
read -p "请输入你操作的选项:" zhu
#根据输入判断输出
case $zhu in 1)
read -p "请输入要创建的用户名:" create_user
createuser $create_user
;;
2)
read -p "请输入要删除的用户:" del_user
deluser $del_user
;;
3)
read -p "请输入要锁定的用户名:" suoding_user
panuser $suoding_user
if [ $? -eq 1 ];then
suo_user $suoding_user
else
echo "账户不存在"
fi
;;
4)
read -p "请输入要解锁的用户:" jiesuo_user
panuser $jiesuo_user
if [ $? -eq 1 ];then
jie_user $jiesuo_user
else
echo "账户不存在"
fi
;;
5)
read -p "请输入要查看的用户:" chakan_user
cha_user $chakan_user
;;
6)
echo "退出脚本"
tui
;;
*)
echo "不存在的选项"
esac

done

 

转载于:https://www.cnblogs.com/fengling1998/p/11445800.html

你可能感兴趣的文章
前端学习☞jquery
查看>>
10分钟搞懂树状数组
查看>>
关于C#的静态类和静态构造函数
查看>>
C#不同窗体间通信,数据传递
查看>>
Windows10下安装Oracle 11g 64位的详细步骤
查看>>
自增运算符:++ 自减运算符:--
查看>>
142. Linked List Cycle II
查看>>
winForm单击用户区可移动窗体,代码控制窗体最大适中
查看>>
linux源
查看>>
配置tomcat服务器时遇到的奇怪现象
查看>>
ftp>ls 未连接
查看>>
【NOIP2016提高A组模拟9.9】运输妹子
查看>>
NOIP2016提高A组五校联考4总结
查看>>
设计移动web
查看>>
[00030]-[2015-09-26]-[00]-[DLL注入应用案例---修改任务管理器的实现]
查看>>
3ds的fbi无线传输
查看>>
Windows下ADT环境搭建
查看>>
[luogu4037 JSOI2008] 魔兽地图 (树形dp)
查看>>
不重新编译DLL,让FCKEditor支持附件上传
查看>>
redux middleware 源码分析
查看>>