#!/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