zoukankan      html  css  js  c++  java
  • 用户管理系统

    #!/bin/bash
    #用户管理系统

    #判断用户是否存在`
    panuser(){
    cat /etc/passwd | awk -F':' '{print $1}' | grep -q ^$1$
    if [ $? -eq 0 ];then
    return 1 #表示用户存在
    else
    return 2 #表示用户不存在
    fi
    }

    #创建用户
    createuser(){
    panuser $1 #判断存在提示,不存在创建
    if [ $? = 1 ];then
    echo "用户已经存在,无需创建"
    return 1
    else
    useradd $1
    if [ $? -eq 0 ];then
    echo "创建用户成功!"
    return 1
    else
    echo "创建用户失败!"
    return 2
    fi
    fi
    }
    #删除用户
    deluser(){
    panuser $1 #判断存在删除,不存在提示
    if [ $? = 1 ];then
    echo "用户存在正在删除...."
    userdel -r $1
    panuser $1
    if [ ! $? -eq 0 ];then
    echo "删除成功!"
    return 1
    else
    echo "删除失败!!!"
    deluser $1
    return 2
    fi
    return 1
    else
    echo "用户不存在!!!"
    return 2
    fi
    }

    #判断用户是否被锁
    pan_user(){
    cat /etc/shadow |grep -w $1 | awk -F':' '{print $2}' | grep -q ^!
    if [ $? -eq 0 ];then
    return 2 #表示已经锁定
    else
    return 1 #表示没有锁定
    fi
    }

    #锁定用户
    suo_user(){
    pan_user $1 #判断没锁锁定,锁了提示
    if [ $? -eq 1 ];then
    passwd -l $1 &> /dev/null
    if [ $? -eq 0 ];then
    echo "锁定账号成功!"
    return 1
    else
    echo "锁定账号失败"
    return 2
    fi
    else
    echo "账号已经被锁定,无需再锁定!!!"
    return 2
    fi
    }

    #解锁用户
    jie_user(){
    pan_user $1 #判断锁了解锁,没锁提示
    if [ $? -eq 2 ];then
    passwd -uf $1 &> /dev/null
    if [ $? -eq 0 ];then
    echo "解锁账号成功!"
    return 1
    else
    echo "解锁账号失败"
    return 2
    fi
    else
    echo "账号没有被锁定,无需解锁!!!"
    return 2
    fi

    }

    #查看用户
    cha_user(){
    panuser $1 #判断存在查看,不存在提示
    if [ $? = 1 ];then
    finger $1
    else
    echo "账户不存在!!!"
    fi

    }

    #退出
    tui(){ #退出提示3秒后退出
    echo "正在退出脚本......"
    sleep 3
    exit
    }

    #主界面
    echo "
    //========================================================\\
    | 用户管理系统 |
    -----------------------------------------------------------
    | 1、创建用户 |
    | 2、删除用户 |
    | 3、锁定用户 |
    | 4、解锁用户 |
    | 5、查看用户 |
    | 6、退出脚本 |
    -----------------------------------------------------------
    "
    #无限循环实现菜单选择
    while true
    do
    read -p "请输入你操作的选项:" zhu
    #根据输入判断输出
    case $zhu in 1)
    read -p "请输入要创建的用户名:" create_user
    createuser $create_user

    ;;
    2)
    read -p "请输入要删除的用户:" del_user
    deluser $del_user
    ;;
    3)
    read -p "请输入要锁定的用户名:" suoding_user
    panuser $suoding_user
    if [ $? -eq 1 ];then
    suo_user $suoding_user
    else
    echo "账户不存在"
    fi
    ;;
    4)
    read -p "请输入要解锁的用户:" jiesuo_user
    panuser $jiesuo_user
    if [ $? -eq 1 ];then
    jie_user $jiesuo_user
    else
    echo "账户不存在"
    fi
    ;;
    5)
    read -p "请输入要查看的用户:" chakan_user
    cha_user $chakan_user
    ;;
    6)
    echo "退出脚本"
    tui
    ;;
    *)
    echo "不存在的选项"
    esac

    done

  • 相关阅读:
    SQL查询SP代码
    MS SQL Server:查询死锁进程(转载)
    批编译、重新编译和计划缓存
    sql like获取以逗号分割的字段内的数据
    SQL Server 2005—数据库管理10个最重要的特点(转载)
    SQL2005数据库镜像配置脚本
    转:SQL 语句优化
    转:SQL SERVER什么时候写日志
    MDX查询几个经典示例
    尾日志备份和时间点还原
  • 原文地址:https://www.cnblogs.com/fengling1998/p/11445800.html
Copyright © 2011-2022 走看看