用户在登录时, 验证完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程序是针对这种格式编写的, 仅供参考。红旗Linux 6.0的3D特效真不错suse中开启XWINDOWS服务的方法相关资讯 Linux编程
- Linux平台代码覆盖率测试-GCC插桩 (05/28/2011 07:12:04)
- Linux平台如何编译使用Google test (05/27/2011 06:27:01)
- Linux平台代码覆盖率测试工具GCOV (05/27/2011 06:24:12)
| - Linux平台Boost的编译方法 (05/27/2011 06:28:03)
- Linux平台代码覆盖率测试工具GCOV (05/27/2011 06:25:50)
- Linux平台代码覆盖率测试-编译过程 (05/27/2011 06:21:27)
|
本文评论 查看全部评论 (0)