脚本适用于没做TTY绑定的已集中的邮政电子汇兑环境,特点就是登陆方便及增强安全性.根据网点终端IP固定的特点,改做了自动登陆相应机构的脚本,也不需要装绑定软件了,当然如已绑定了TTY的,稍微改改就行了.这样预置的前台网点能自动登陆相应的机构,而要进入管理状态或非法IP终端必须要输入正确的密码才能登陆.(预置的密码为我们四川乐山沙湾区的邮编)
PS:
1)在电子兑用户下建一文本文件:iptable.conf,格式为每行3字段,分别为IP地址,机构代码,机构名称 (机构代码为root时登陆后必须输入正常的维护密码,以便进入维护状态),(机构名称可有可无)
2)屏敝电子汇兑用户.profile最后的自动登陆脚本logstlr.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密码 库名 <<EOF >/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]
|
|
|