shell脚本编写用户管理系统
作业要求:
输出如图所示的图形,编写代码可以实现所有的要求
#! /bin/bash
#这是创建用户管理系统的脚本
#Date:2019年9月3号
#filename:user.sh
#用到了判断、循环,思路很清晰,中等难度
#自己写一个这样的框
echo "
//===========================\\
| 用户管理系统 |
---------------------------------------------------
| 1、创建用户 |
| 2、删除用户 |
| 3、锁定用户 |
| 4、解锁用户 |
| 5、查看用户 |
| 6、退出脚本 |
---------------------------------------------------
"
#写一个循环
while :
do
#执行操作,输入你要操作的序号(1、2、3、4、5、6)
read -p "请输入你的操作选择:" user
#创建用户,user输入1时,写一个if条件语句
if [ $user -eq 1 ]
then
read -p "请输入你的用户名:" name
#判断输入的用户名是否存在,若存在可以查看用户id,该命令能够执行,返回值1,说明用户已存在不能创建了;若用户不存在,就无法执行该命令,返回值为0,就可以创建用户
id $name &> /dev/null
if [ $? -eq 0 ]
then
echo "******用户已存在!******"
else
read -p "请输入密码:" mi
useradd $name && echo "$mi" | passwd --stdin $name &> /dev/null
echo "******用户创建成功!******"
fi
fi
#删除用户,先查看用户存不存在,还是查看用户id看命令执行后的返回值,若返回值为0说明用户存在,执行删除操作;若返回值为1说明用户不存在
if [ $user -eq 2 ]
then
read -p "请输入你的用户名:" name
id $name &> /dev/null
if [ $? -eq 0 ]
then
userdel -r $name
echo "******删除用户成功!******"
else
echo "******用户不存在!******"
fi
fi
#锁定用户
if [ $user -eq 3 ]
then
read -p "请输入你的用户名:" name
#从/etc/passwd文件中过滤你要操作的用户名,从找出的用户中过滤出‘!’,若该命令过滤出‘!’了,说明该用户已被锁定
grep $name /etc/shadow | grep '!' &> /dev/null
if [ $? -ne 0 ]
then
passwd -l $name &> /dev/null
echo "******已成功锁定用户!******"
else
echo "******锁定用户不成功!******"
fi
fi
#解锁用户
if [ $user -eq 4 ]
then
read -p "请输入你的用户名:" name
grep $name /etc/shadow | grep '!' &> /dev/null
if [ $? -eq 0 ]
then
passwd -u -f $name &> /dev/null
echo "******解锁用户成功!******"
else
echo "******锁定用户不成功!******"
fi
fi
#查看用户,先查看用户存不存在,再根据命令的返回值查看用户
if [ $user -eq 5 ]
then
read -p "请输入你的用户名:" name
grep $name /etc/passwd &> /dev/null
if [ $? -eq 0 ]
then
finger $name
echo "******查看用户成功!******"
else
echo "******用户不存在!******"
fi
fi
#退出脚本
if [ $user -eq 6 ]
then
exit
fi
done