shell 验证用户输入脚本(密码校验)linux

一个简单的密码校验的脚本,效果是弹窗一个GUI页面,让用户输入用户名和密码。然后和获取到的远端服务器上的密码进行比较,如果一致呢,就执行后续的操作,否则就继续让用户输入,输错三次就退出执行,当获取不到远程的密码的时候呢,也直接执行后续操作。

脚本如下:

#!/bin/bash


if [ "$1" != "none" ]; then

        #wget 后面的路径应该改为nginx文件服务器的地址/文件路径,“--output-document -” 的意思是读取内容而不保存到本地
        pass=`wget -q "http://192.168.50.210:6868/password.cfg" --output-document -`

        if [[ $? -ne 0 ]]; then
                return 1
        fi

        Getting_Input() {
            FORM=$(zenity --forms --title="log on $i/3" \
            --text="Please enter username and password: " \
            --add-entry="username" \
            --add-password="password" \
            --width=400 \
            --height=200)

            if [[ $? -ne 0 ]]; then
                exit 0
            fi



            USERNAME=$(echo $FORM | awk -F'|' '{print $1}')
            PASSWORD=$(echo $FORM | awk -F'|' '{print $2}')
        }

        Check(){
            iterations=3

            for ((i=1; i<=$iterations; i++))
            do
                    Getting_Input

                if [[ -n "$USERNAME" && -n "$PASSWORD" ]]; then
                        upaa="$USERNAME|$PASSWORD"

                        if [[ "$pass" == *"$upaa"* ]]; then
                                return 0
                        else
                                echo "用户名或密码错误"
                        fi
                else
                        echo "用户名和密码不能为空"
                fi

            done
            exit 1
    }

    Check
fi


服务器端密码文件格式:

cat password.cfg

# 用户名|密码

abc|123

aaa|321

ccc|111

使用说明:

把这个脚本文件,写好放在任意目录例如(/opt/option/a.sh),然后在需要验证的服务启动脚本文件的第一行添加: source  /opt/option/a.sh   然后执行你的脚本时候就会发现设置成功了。

这个脚本呢,他第一行是判断如果启动脚本后面跟的参数,是none,那就不用去执行后面的内容,也就是不用执行密码校验了,这个可以根据需求修改。

如果你还没有安装那个GUI页面,可以执行下面的命令安装

sudo apt install zenity

好的,已经一个简单的脚本分享完毕,拜拜。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值