用shell做一个虚拟的的一个平台

这次和上次不一样,不创建用户

要求和上次一样,只是多了一个创建用户和删除用户

创建用户可以把一个目录相当于一个用户。为了防止重复创建用户还可以进行判断有没有这个用户。创建用户后的密码可以以用户/密码这样的格式输入进一个密码文件里面,这样可以一个账号一个密码,不会出现随便输一个密码都可以登录。只需要在输入账号的时候去查一下有没有这个用户/账号就可以了(不过其实有更好的方法,就是直接在用户文件下建一个密码文件就可以了,这样还更方便,只不过那时候没想到,做完后缓了好久突然想到的,但是又懒得改了)

登录用户可以直接在用户目录里创建文件,保证输入三次就失败,重启也没用。

登录用户------->输入账号------->输入密码

正确就直接登录,错误就在用户下创建一个文件,三次后就不让你登录了(会给你提示还有几次)

输入账号那边如果没有账号会提示你没有

删除用户就直接删掉用户,然后在密码本哪里删掉你记录(就是这里做完后我才想起来我可以直接在用户里面做一个密码文件的,这样就只需要删除这个用户就可以了,但是我懒得改了,心态崩了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!)

退出就直接退出就可以了。

对了我这边代码是直接让他睡眠一个小时,你完全可以在登录那边写一个执行程序的,执行你这个用户的默认程序,就是创建用户的时候在里面创建一个类似桌面的程序,然后当你打开你的账号直接跳到那个桌面程序上,也可以接着创建文件目录或者干嘛,这也是为什么我说的是虚拟平台的原因。

#############################################################################

#/bin/bash

sc(){
read -p "请输入要删除的用户名:" S
   [ -e /gan/ml/zhuce/yh/$S ]
if [ $? -eq 1 ] ;then
    echo "没有此用户"
    continue
else
    read -p "请输入密码:" s
    grep $S/$s /gan/ml/zhuce/mm  #  &> /dev/null
    if [ $? -eq 0 ] ;then
    read -p "再次确认是否删除用户$S(y/n)" q
    case $q in
     y)
        mmzh=$S/$s
        rm -rf /gan/ml/zhuce/yh/$S
        sed -i "/$S\/$s/d" /gan/ml/zhuce/mm
        echo "以删除此用户"
        ;;
     n)
        continue
        ;;
     *)
        echo "无此选项"
        ;;
     esac
     else
        continue
     fi
fi
}

yh(){
read -p "请输入要创建的用户名:" N
     [ -e /gan/ml/zhuce/yh/$N ]
if [ $? -eq 0 ] ;then
    echo "已有账户不可创建"
    continue
else
  mkdir /gan/ml/zhuce/yh/$N
  read -p "请输入密码:" P
  read -p "请再次输入密码:" p
  if [ $P == $p ]; then
    echo "注册成功"
    echo $N/$P >> /gan/ml/zhuce/mm
  else
    echo "两次密码错误"
  fi
grep $N/$P /gan/ml/zhuce/mm
 if [ $? -eq 1 ] ;then
   rm -rf /gan/ml/zhuce/yh/$N
 fi
fi
}
dl(){
read -p "请输入用户名:" n
     [ -e /gan/ml/zhuce/yh/$n ]
if [ $? -eq 1 ] ;then
    echo "没有此用户"
    continue
else
i=0
while :;
    read -p "请输入密码:" M
do
let i++
    grep $n/$M /gan/ml/zhuce/mm   &> /dev/null
    if [ $? -eq 0 ] ;then
      echo "登录成功"
      sleep 1d
     else
      touch /gan/ml/zhuce/yh/$n/$i
      [ -e /gan/ml/zhuce/yh/$n/3 ]
       if [ $? -eq 0 ] ;then
        echo "拒绝访问"
        return
       fi
       echo "密码错误,您还有$(expr 3 - $i)试错的机会,试错用完将锁死用户"
       continue
     fi
done
fi
}
while :
do
cat <<FOF
*******************
        1,用户登录
        2,用户注册
        3,用户删除
        4,退出登录
*******************
FOF
read -p "请输入你的选择:" num
case $num in
        1)
                dl
                ;;
        2)
                yh
                ;;
        3)
                sc
                ;;
        4)
                echo "退出登录"
                exit
                ;;
        *)
                echo "无此选项"
                ;;
esac
sleep 1
clear
done
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值