linux创建用户(非系统用户),可以注册注销,密码输错3次自动锁住
  zZHnZavbRDNq 2023年11月02日 13 0


#!/bin/bash
#liushuai
#2019-12-01









function menu() {
 clear
 echo
echo -e "\033[40;37;5m liushuai \033[0m "
 echo -e "\t\t\t用户登录首页\n\n"
 echo -e "\t1. 登录已有用户"
 echo -e "\t2. 创建新的用户"
 echo -e "\t3. 查看用户状态"
 echo -e "\t4. 退出用户程序\n"

}

function lock() {
sleep 1
clear
[ -f /.lock.txt ] || touch /.lock.txt
	if [ "$?" -eq 0 ];then
		echo "创建用户存储文件......"
		sleep 1
		echo "文件创建成功"
		sleep 1
	fi
}
function dl() {
[ -f /.dl.txt ] || touch /.dl.txt
	if [ "$?" -eq 0 ];then
		echo "检测本地环境中......."
		sleep 2
		echo "检测完成"
		sleep 1
	fi
}
function User() {

clear
read -p "是否确认进入该模块y/n: " w
	if [ "$w" = "y" -o "$w" = "Y" ];then
		echo "请稍等......."
		sleep 1
	else
		return
	fi
clear
while :
do
read -p "请输入你的用户名:" num
userc=`grep -w "$num" /.lock.txt | awk -F ":" '{print $1}'`
if [ "$num" = "$userc" ];then
        echo "该用户已经被锁定,无法登录"
        sleep 1
        return
fi
userd=`grep -w "$num" /.dl.txt | awk -F ":" '{print $1}'`
passwd=`grep -w "$num" /.dl.txt | awk -F ":" '{print $2}'`
if [ "$num" = "$userd" ];then
	echo "正在确认用户请稍等......."
	sleep 1
else
	echo "对不起,没有该用户请在首页创建"
	sleep 1
	return
fi
	for ((i=0;i<4;i++))
	do
	if [ "$i" -eq 3 ];then
		echo `echo ${num}: >> /.lock.txt`
	        echo "${num}已经被锁定,10天后将会自动解锁"
			[ -f /var/spool/cron/$USER ] || touch /var/spool/cron/$USER
			        for l in `grep "$num" /.lock.txt | awk -F ":" '{print $1}'`
       			        do
                			echo `echo "* * */10 * * /bin/sed -i '/${num}/d' /.lock.txt" >> /var/spool/cron/$USER`
        			done
      	        sleep 1
       		return
	 fi
	read -p "请输入你的密码:" pass
		while :
		do
			echo "确认密码中请稍等......."
			sleep 1
			if [ "$passwd" = "$pass" ];then
     				echo "登录成功"
				sleep 1
				return
			else
				echo "用户名或密码错误"
				sleep 1
				break               		
	 		fi
		done
	done
done
}
function Mkuser() {

clear
read -p "是否确认进入该模块y/n: " t
	if [ "$t" = "y" -o "$t" = "Y" ];then
		echo "请稍等......"
		sleep 1
	else
		return
	fi
clear
while :
do
	while :
	do
	read -p "请输入需要创建的用户名:" mkuser
	usere=`grep -w "$mkuser" /.dl.txt | awk -F ":" '{print $1}' | head -1`
		if [ "$mkuser" = "$usere" ];then
			echo "该用户已经存在,请重新输入用户名"
			sleep 1
			continue
		fi
	read -p "是否使用${mkuser}这个用户名y/n: " q
		if [ "$q" = "n" -o "$q" = "N" ];then
			continue
		fi	
		while :
		do
		read -p "请输入密码 :" npass
		read -p "是否使用该密码y/n: " npassa
			if [ "$npassa" = "n" -o "$npassa" = "N" ];then
				continue
			else
				echo "该用户创建成功,请返回首页登录"
				echo `echo "$mkuser:$npass" >> /.dl.txt `
				sleep 1
				return
			fi
		done
	done
done
}
function Catuser() {

clear
read -p "是否确认进入该模块y/n:" v
	if [ "$v" = "y" -o "$v" = "Y" ];then
		echo "请稍等......"
		sleep 1
	else
		return
	fi
clear
read -p "请输入你要查看的用户名:" catuser
user=`grep -w "$catuser" /.lock.txt | awk -F ":" '{print $1}'`
usera=`grep -w "$catuser" /.dl.txt | awk -F ":" '{print $1}'`
if [ "$catuser" = "$user" ];then
	echo "该用户已经被锁定状态"
	sleep 1
	return
elif [ "$catuser" = "$usera" ];then
	echo "该用户处于正常状态"
	sleep 1
	return
else
	echo "该用户未注册,请前往首页注册"
	sleep 1
	return
fi

}
a=""
lock
dl

while :
do
menu
read -p "请确认你的输入选项: " option
case $option in
	1)
		User
	;;
	2)
		Mkuser
        ;;
	3)
		Catuser
	;;
	4)
		echo "即将退出程序......."
		sleep 1
		clear
		exit
	;;
	*)
		echo "请正确输入对应的数字"
	;;
esac
done


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
zZHnZavbRDNq