Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103122019
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-18 23:07:30

作者:styr  出处:Unix爱好者家园unix-cd.com   
脚本适用于没做TTY绑定的已集中的邮政电子汇兑环境,特点就是登陆方便及增强安全性.根据网点终端IP固定的特点,改做了自动登陆相应机构的脚本,也不需要装绑定软件了,当然如已绑定了TTY的,稍微改改就行了.这样预置的前台网点能自动登陆相应的机构,而要进入管理状态或非法IP终端必须要输入正确的密码才能登陆.(预置的密码为我们四川乐山沙湾区的邮编)


PS:
1)在电子兑用户下建一文本文件:iptable.conf,格式为每行3字段,分别为IP地址,机构代码,机构名称  (机构代码为root时登陆后必须输入正常的维护密码,以便进入维护状态),(机构名称可有可无)
2)屏敝电子汇兑用户.profile最后的自动登陆脚本logstlr.sh或其它(如果有的话),在最后增加
trap ' '  2  nlogstlr.sh
这样当网点登陆时,自动选择相应的机构代码,如需进入别的机构则请自行输入即可.需进入维护状态可将机构代码输入为root即可

iptable.conf的样式

以下为代码内容:
192.168.0.100 root      测试
192.168.0.11 51061000   会计
192.168.0.6  51061000   清算
192.168.0.7  51061001   区局1# 
192.168.0.64 51061001   区局2#
192.168.0.49 51061002   太平支局
192.168.0.33 51061003   加农支局
192.168.0.17 51061004   牛石支局  
192.168.0.64 51061005   福禄支局


nlogstlr.sh

[code]#!/bin/ksh
#根据终端固定IP自动登陆电子汇兑相应机构的脚本  V051212
#四川省乐山市沙湾区邮政局  宋 涛


quit()
{
kill -9 $(ps | awk '$4=="ksh" {print $1}')
}

testerrornum()        #测试错误输入次数,超过3次即退出

test $errornum -eq 3 && { echo "\n                error: 错误输入次数超限,请重新登录\n"  quit  }
echo "                error: 输入密码错误,请重新输入" 
((errornum=errornum+1)) 
read
}

password()        #进入维护系统密码认证
{
passwd="haigeff"
errornum=1
while :
do
echo -n "\n                    请输入电子汇兑维护系统密码: ""\033[8m"
read passwdA
echo "\033[0m"
[[ $passwdA == *([0-9])  &&  ${#passwdA} -eq 6 ]]  || { testerrornum  continue  }
passwdA=$(echo $passwdA | sed 's/\(.\)\(.\)/\2\1/g')
passwdA=$(echo 8$passwdA)
passwdA=$(echo $((~passwdA))|cut -c2-)
passwdA=$((passwdA^111111))
passwdA=$(echo $passwdA|sed 'y/1234567890/abcdefghij/')
test "$passwd" = "$passwdA" && { clear  echo "\n\n\n                    密码正确,已进入电子汇兑维护系统\n"  exit  } || \
{ testerrornum  continue  } 
done
}

inroot()
{
echo -n "\n               是否需进入电子汇兑维护系统(y/n): "
read yn
case $yn in
y|Y) password ;
*) quit ;
esac
}

trap ' ' 2 
mysql -u [color=red用户名[/color]-p密码 库名 </dev/null 2>&1   #为了安全,屏敝了红色部分,请参阅原logstlr.sh该行代码,修改此行即可exit
EOF
[ $? -ne "0" ] && { echo "\n              error: 请启动数据库及安全平台\n"  inroot  }
[ -r ~/iptable.conf ] || { echo "\n              error: 机构信息配置文件 iptable.conf 不存在或不可读\n"  inroot  }

LoginIP=$(who -x |awk -v ttyp=$(who am i|awk '{print $2}''$2==ttyp {print $6}' )
"$LoginIP" ] && awk  '$1=="'$LoginIP'" {print $2,$3}' ~/iptable.conf|read BRNO BRNONAME || inroot
"$BRNO" ] || {  echo "\n              error: 请正确配置终端地址与对应的机构代码\n"  inroot  }
"$BRNO" = "root" ] && inroot
"$(echo $BRNO | sed 's/^[0-9]\{8\}$//')" ] && { echo "\n              error: 请正确配置机构代码\n"  read  exit  }
while :
do
clear
printf "
   *****************************************************************
   *                                                               *
   *               欢迎进入中国邮政电子汇兑系统                    *
   *                                                               *
   *****************************************************************

                 机构代码:${BRNO}    机构名称:${BRNONAME}   
              
"
read yn?"   确认进入请直接回车,否则请输入正确的机构代码: "
if [ "$yn" ] 
then
[ $yn = "root" ] && inroot 
"$(echo $yn | sed 's/^[0-9]\{8\}$//')" ] && { echo "\n                   error: 请正确输入机构代码\n"  read  continue  } \
|| { BRNO=$yn  break  }
else 
break 
fi
done
[ -d ~/stlr/$BRNO ] || { echo "\n         error: 该机构目录不存在,请联系管理人员解决\n"  read  quit  }
cd ~/stlr/$BRNO
steller 
quit[/code]

阅读(228) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~