BBS水木清华站∶精华区

发信人: wshu (树上的老虎), 信区: Unix 
标  题: 如何限制用户的登陆地点? 
发信站: BBS 水木清华站 (Mon May 26 03:53:14 1997) 
 
  用户在登录时, 验证完passwd后, 根据shell的不同, 系统首先执行/etc下的某个 
文件. sh,ksh是profile, csh是csh.cshrc, bash是bashrc. 在这时对用户登陆地点 
加以验证, 可防止某些可能的intruder. 下面是我用在西门子RM600并行机上的 
/etc/profile的一段程序. 
 
       .... 
       .... 
       # check for authenication 
        if [ -r /etc/checkfrom.awk ]; then 
                VALID=`finger | awk -f /etc/checkfrom.awk` 
                if [ "$VALID" != "WELCOME" ]; then 
                        echo "Intruder, GET AWAY FROM HERE!!!" 
                        exit 
                fi 
        fi 
        ..... 
        ...... 
 
     /etc/checkfrom.awk是一个awk程序, 内容如下: 
 
BEGIN {site["aft01"]=1; 
        site["aft02"]=1; 
        site["aft03"]=1; 
        site["aft04"]=1; 
        site["aft05"]=1; 
        site["rs6000"]=1; 
        } 
$1==ENVIRON["LOGNAME"] { 
                if ($NF !~ /[0-9]+:[0-9]+/){ 
                        i = NF - 3 
                        if("/dev/"$i == ENVIRON["TTY"]){ 
                                if(ENVIRON["TTY"] != "/dev/console"){ 
                                        if($NF in site)print "WELCOME" 
                                        else print "GETAWAY" 
                                } 
                                else print "WELCOME" 
                                exit 0 
                        } 
                } 
                else{ 
                        i = NF - 2 
                        if("/dev/"$i == ENVIRON["TTY"]){ 
                                print "WELCOME" 
                                exit 0 
                        } 
                } 
        } 
 
注: 请注意你的机器上的finger显示的格式, 我机器上的格式如下: 
$ finger 
lsad% finger 
Login       Name               TTY         Idle    When    Where 
tiger    Wang Shuhu            console          Mon 00:41  
lsad%  
上面的awk程序是针对这种格式编写的, 仅供参考. 
 
 
-- 
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.18.6] 

BBS水木清华站∶精华区