效果图如下:

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

利用shell脚本做一个用户登录系统的更多相关文章

  1. Flask最强攻略 - 跟DragonFire学Flask - 第五篇 做一个用户登录之后查看学员信息的小例子

    需求: 1. 用户名: oldboy 密码: oldboy123 2. 用户登录成功之后跳转到列表页面 3. 失败有消息提示,重新登录 4.点击学生名称之后,可以看到学生的详细信息 后端: from ...

  2. ftp:linux下利用shell脚本添加虚拟用户并赋予权限

    首先ftp配置应为虚拟用户登录模式 用户密码文本目录为/etc/vsftpd/vftpuser,代码如下: #!/bin/bash # ];then username=$ password=$ hom ...

  3. 【转载】利用shell脚本获取一个文件的绝对路径readlink

    转载自:http://os.chinaunix.net/a2007/1118/976/000000976787.shtml #! /bin/bash echo "Path to $(base ...

  4. 利用shell脚本实现计划任务功能 V1.2

    2013.05.10  mytask 1.2 主程序休眠时间分成若干小的时间片断分段休眠,避免长时间的休眠不能及时响应系统信号. 2013.05.07 mytask 1.1 昨天发布了mytask1. ...

  5. 用 shell 脚本做自动化测试

    前言 项目中有一个功能,需要监控本地文件系统的变更,例如文件的增.删.改名.文件数据变动等等.之前只在 windows 上有实现,采用的是 iocp + ReadDirectoryChanges 方案 ...

  6. 利用shell脚本或者php移动某个文件夹下的文件到各自的日期组成的目录下

    背景是这样的:网站一开始访问量比较小,大家就把所有的图片文件上传到一个目录下(比如是/data/images/).后来访问量大了,图片也多了,这样就影响读取效率.所以有个这样的需求,把这些个图片文件移 ...

  7. Springboot - 建立简单的用户登录系统

    在开始编码前,先建立几个Package(可以按个人习惯命名),如图 1.Controllers 用于存放控制器类 2.Models 用于存放数据实体类 3.Repositories 用于存放数据库操作 ...

  8. shell脚本中添加用户并设置密码

    有时候在初始化shell脚本中希望能顺便创建用户并指定密码,使用useradd命令可以达到该效果: useradd -m -p encryptedPassword username 参数说明: -m ...

  9. shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中

    shell编程系列24--shell操作数据库实战之利用shell脚本将文本数据导入到mysql中 利用shell脚本将文本数据导入到mysql中 需求1:处理文本中的数据,将文本中的数据插入到mys ...

随机推荐

  1. Unix介绍

    1965年,AT&T贝尔电话实验室.通用电气公司.麻省理工学院MAC课题组一起联合开发一个称为Multics的新操作系统.该项目目的是让大型主机可以同时提供300台以上的终端机连接使用.其被设 ...

  2. 综合开源框架之RxJava/RxAndroid

    * 一种帮助做异步的框架. 类似于 AsyncTask. 但其灵活性和扩展性远远强于前者. * 主页: https://github.com/ReactiveX/RxJava * 中文资料: * ht ...

  3. 图片加载框架之fresco

    FaceBook推出的图片处理框架主页: https://github.com/facebook/fresco中文文档:http://fresco-cn.org/docs/index.html 功能 ...

  4. 学习Oracle数据库入门到精通教程资料合集

    任何大型信息系统,都需要有数据库管理系统作为支撑.其中,Oracle以其卓越的性能获得了广泛的应用.本合集汇总了学习Oracle数据库从入门到精通的30份教程资料. 资料名称 下载地址 超详细Orac ...

  5. Prism框架 如何在主程序中合理的弹出子窗体

    说起子窗体,大家都会想到ChildWindow,多熟悉的一个控件.不错,Sliverlight中已经提供了子窗体的具体实现,而在WPF中却没有这么好的事情(有的第三方控件商已经提供此控件).最常见的实 ...

  6. ButterKnifer使用

    ButterKnifer使用 1.集成 github地址: https://github.com/JakeWharton/butterknife 1.1在主Moduel中的使用 在主moduel中的b ...

  7. 002. Add Two Numbers

    题目链接:https://leetcode.com/problems/add-two-numbers/description/ Example: Input: (2 -> 4 -> 3) ...

  8. 整合Django的信息显示框架messages framework

    ##主要用在view.login函数,不管登录是否成功,都会设置message变量,然后在login.html显示 from django.contrib import messages#需要导的包 ...

  9. docker 入门 命令

    docker 命令 docker images 镜像列表 docker ps 服务列表 docker 隐藏打包文件 .dockerignore .git node_modules npm-debug. ...

  10. IntelliJ IDEA 2018 for Mac使用技巧

    IntelliJ IDEA 2018 for Mac是一个综合性的Java编程环境,被许多开发人员和行业专家誉为市场上最好的IDE,它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2E ...