用户登录前添加验证界面

(0 comments)

为了限制某些公共用户的访问,在用户登录后提示一个问题,只允许回答正确的用户登录。密码问题和答案可以从外部页面或者数据库中读取,下面例子中使用固定的问题和答案。

#!/bin/sh

trap 'logout;' 1 SIGINT

read -p "Today's ticket number:" ticket

if [ "$ticket" != "32378" ]; then
echo "Wrong ticket number! Logoff."
exit
fi

当用户按Ctrl-C或者Ctrl-Z时,可以直接关闭程序,所以在程序开始,屏蔽了这两个信号,其中SIGINT表示Ctrl-C,也可以用2, INT表示。

另一种方法是替换Shell文件,指定给用户的shell程序必须记录在/etc/shells文件中。

#! /bin/sh

while [ -z $ticket ]; do
    read -p "Today's ticket number:" ticket
done

if [ $ticket == '12345' ]; then
    /bin/bash
else
    echo "Wrong ticket number! Logoff."
    exit
fi
Currently unrated

Comments

There are currently no comments

New Comment

required

required (not published)

optional

required