效果图如下:

#!/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. [Python]切换工作目录|python将目录切换为脚本所在目录

    Python使用os.chdir命令切换python工作目录 代码示例: In []: import os In []: os.system("pwd") /home/wangju ...

  2. [nginx]设置代理和静态资源目录

    upstream disconf { server ; #tomcat服务器的地址 } server { listen ; #监听端口 server_name localhost; #域名 index ...

  3. python对列表中名字进行修改,在每个名字后面加入‘the Great’

    第一种方法:使用enumerate函数 def make_great(magicians): for i ,name in enumerate(magicians): magicians[i] = m ...

  4. Git代码行数统计命令

    统计zhangsan在某个时间段内的git新增删除代码行数 git log --author=zhangsan--since=2018-01-01 --until=2019-04-01 --forma ...

  5. c++ qsort函数应用

    C++ qsort在"iostream" c在头文件stdlib.h中,strcmp在string.h中.下列例子默认从小到大排序即(a>b返回>0),反之从小到大排序 ...

  6. 关于SVN的405错误Server sent unexpected return value (405 Method Not Allowed)的解决办法

    一大早上捣鼓项目提交的时候出现这个错误: svn:server sent unexpected return value 405 method not allowed 百度了很多解决办法都没有解决,看 ...

  7. js Date格式转化

    Date格式转化为日期  年-月-日(格式随意修改) GetDateStr(dd, AddDayCount) { dd.setDate(dd.getDate() + AddDayCount)// 获取 ...

  8. Git命令与介绍

    一. Git[命令与介绍] 1. 作用 可以用于个的项目版本控制和管理 目前多用于团队间的多人协作项目开发 2. 安装 l 安装包路径 l 安装 后的路径: 3. 工作流程 (1) 创建项目目录 在路 ...

  9. Linux C/C++基础——二级指针做形参

    1.二级指针做形参 #include<stdio.h> #include<stdlib.h> void fun(int **temp) { *temp=(int*)malloc ...

  10. 人工智能06 能计划的agent

    能计划的agent 存储与计算 响应agent的动作功能几乎没有做任何计算.从本质上讲,这些agent执行的动作或者由他们的设计者.或者通过学习.或者通过演化过程.或者由以上几方面的组合来选择给他们的 ...