利用shell脚本做一个用户登录系统
效果图如下:
#!/bin/bash
#
while true
do
cat << EOF
//======================\\\\
| 用户登录系统 |
--------------------------
| 1、创建用户 |
| 2、删除用户 |
| 3、锁定用户 |
| 4、解锁用户 |
| 5、查看用户 |
| 6、退出脚本 |
--------------------------
EOF
read -p "请输入你的操作选择:" num
#输入为1时的判断
if [ "$num" -eq 1 ]
then
read -p "请输入你的用户名:" user
if [ -d /home/$user ]
then
echo "***********该账号已存在,无需创建*************"
else
cat /etc/shadow | awk -F'[:]' '{print $1}' | grep -w $user &> /dev/null
if [ $? -eq 0 ]
then
echo "***********该账号已存在,无需创建*************"
else
useradd $user
echo "***********成功创建用户$user***************"
fi
fi
fi
#输入为2时的判断
if [ "$num" -eq 2 ]
then
read -p "请输入你的用户名:" user
if [ -d /home/$user ]
then
userdel -r $user
echo "******************成功删除用户$user****************"
else
echo "****************无该账号,删除失败*******************"
fi
fi
#输入为3时
if [ "$num" -eq 3 ]
then
read -p "请输入你的用户名:" user
l=$(cat /etc/shadow |grep $user | awk -F'[:]' '/!!/{print $2}' | grep -o '!!')
if [ -d /home/$user ]
then
if [ "$l" != !! ]
then
passwd -l $user &> /dev/null
echo "*****************成功锁定用户$user****************"
else
echo "***************该账号已锁定,无需再次锁定*******************"
fi
else
echo "**************无该账号,需创建************"
fi
fi
#输入为4时
if [ "$num" -eq 4 ]
then
read -p "请输入你的用户名:" user
l=$(cat /etc/shadow |grep -w $user | awk -F'[:]' '/!!/{print $2}' | grep -o '!!')
p=$(cat /etc/shadow |grep -w $user | awk -F'[:]' '{print $2}' | grep -o '^!')
if [ -d /home/$user ]
then
if [ "$l" = !! ]
then
passwd -u -f $user &> /dev/null
echo "**********************成功解锁用户$user************************"
elif [ "$p" = ! ]
then
usermod -U $user &> /dev/null
else
echo "*****************该用户未锁定,无需解锁*****************"
fi
else
echo "***********************无该账号,需创建**********************"
fi
fi
#输入为5时
if [ "$num" -eq 5 ]
then
read -p "请输入你的用户名:" user
if [ -d /home/$user ]
then
echo "******************用 户 $user 信 息 如 下***************************"
finger $user
else
echo "***********************无该账号,需创建**********************"
fi
fi
#输入为6时
if [ "$num" -eq 6 ]
then
echo "**************************欢迎使用,下次再见**************************"
exit
fi
done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构