#!/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 3exit}#主界面
echo "//========================================================\\\\| 用户管理系统 |-----------------------------------------------------------| 1、创建用户 || 2、删除用户 || 3、锁定用户 || 4、解锁用户 || 5、查看用户 || 6、退出脚本 |-----------------------------------------------------------"#无限循环实现菜单选择while truedo 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 "不存在的选项" esacdone