咨询电话:010-82823766

登录控制的问题?
  • 2008-2-17 18:20:42
  • 发表时间:
  • 浏览次数:
  • 不详
  • 文章来源:
  • 佚名
  • 作者:


请问在sco openserver 5.0.5中.如何控制终端的登录.采用的是网络终端.就是用这个ip地址的终端只能用业务前台的用户名登录.而不能用其它用户名登录.不采用密码.有什么方法.我的想法是:对于己于192.168.0.1-192.168.0.30这一网段内的终端只能用用户1和用户2登录到主机.而192.168.0.31-192.168.0.60这一网段的终端只能用用户3和用户4登录主机.如果操作人员在终端上输入了并不是该终端所属网段的用户,则就让它不能登录.其它的网段的终端以此类推.能给出代码最好啦.

 styr 回复于:2005-05-10 14:42:42
上次见过这贴子,不过后来沉了,呵呵
我也是初学者,学着做了一个,帮助拍拍砖啊 $cat  test.sh
[code:1:2cbbaeac6a]#!/bin/ksh
trap "" 1 2 3 15


youtty=`tty | tr -d "/dev/ttyp"`   
youname="$LOGNAME"

iptest=$(awk '{if ($2=='$youtty') print $1 }' ip | awk -F"." '{print $4}' )
 
 if [ "$iptest" -eq 0 ]
  then
echo "无此用户" 
exit -1 
  else  
      if [ "$iptest" -ge 1 -a "$iptest" -le 30 ]
      then
         if [  "$youname" = "user1" -o "$youname" = "user2"  ] 
         then
echo "欢迎登录\n"
         else 
echo "本终端只能由user1或user2进入.\n"    
exit -1 
         fi
      else
          if [ "$iptest" -ge 31 -a "$iptest" -le 60 ]
          then
            if [  "$youname" = "user3" -o "$youname" = "user4" ] 
            then
echo "欢迎登录\n"
            else 
echo "本终端只能由user3或user4进入.\n"  
exit -1  
 
            fi
          fi
     fi 
  fi
[/code:1:2cbbaeac6a]
先建一个文本文件ip,内容为IP地址  终端号,如
192.168.0.1    1
192.168.0.30  2
192.168.0.60  60
....

把这个sh加在.profile里应该可以了
根据做好的ip文件先判断登录的终端号是否存在,再判断IP地址是否合法,再是判断登录用户名.呵呵,老大们砍吧.................

 CNL 回复于:2005-05-10 16:16:34
[quote:9b30ad2aa3="styr"]先建一个文本文件ip,内容为IP地址  终端号,如
192.168.0.1    1
192.168.0.30  2
192.168.0.60  60
....

把这个sh加在.profile里应该可以了
根据做好的ip文件先判断登录的终端号是否存在,再判断IP地址是否合..........[/quote:9b30ad2aa3]
逻辑很清楚、流畅,不错,
实现看来是要在网络终端号绑定的基础上才行

 styr 回复于:2005-05-10 18:10:17
我只在家里用VM试了试,应该还可以用的,那个IP文件权根最好是root的755
因为我们局的终端都是绑定了的,所以只能那样做了.如果没绑定,基本上是可以用的,只不过取IP值要麻烦些了 :-( :em17:

 giggle5 回复于:2005-05-19 16:45:51
研究了很长时间,就是看不明白二楼的代码.二楼能不能说一下,偶是一SHELL程序菜鸟.

 giggle5 回复于:2005-05-20 14:09:20
研究了很长时间,就是看不明白二楼的代码.二楼能不能说一下,偶是一SHELL程序菜鸟.

 styr 回复于:2005-05-20 17:12:01
说说当然可以的,也请老大们拍拍砖啊,帮忙改进一下

#!/bin/ksh 
trap "" 1 2 3 15   #禁止按del等中断


youtty=`tty | tr -d "/dev/ttyp"`   #取终端登陆的TTY号
youname="$LOGNAME"               #取终端登陆的用户名

iptest=$(awk '{if ($2=='$youtty') print $1 }' ip | awk -F"." '{print $4}' )    #取与IP文件中相同TTY号的IP地址最后一段IP

if [ "$iptest" -eq 0 ] 
 then 
echo "无此用户"      #如没找到预先设定的TTY号,则判断为非法TTY并退出
exit -1 
 else   
     if [ "$iptest" -ge 1 -a "$iptest" -le 30 ]   #判断IP 地址是否在192.168.0.1-192.168.0.30这一网段内
     then 
        if [  "$youname" = "user1" -o "$youname" = "user2"  ] 
        then 
echo "欢迎登录\n"  #判断用户名是否为 user1 或 user2
        else 
echo "本终端只能由user1或user2进入.\n"     
exit -1 
        fi 
     else 
         if [ "$iptest" -ge 31 -a "$iptest" -le 60 ] 
         then 
           if [  "$youname" = "user3" -o "$youname" = "user4" ] 
           then 
echo "欢迎登录\n"  #判断用户名是否为 user1 或 user2
           else 
echo "本终端只能由user3或user4进入.\n"   
exit -1   

           fi 
         fi 
    fi 
 fi 

呵呵,水平有限,我也是初学shell的,大家多指教啊 :em06:

 fl.w 回复于:2005-06-15 08:19:27
已经很厉害了!!

 styr 回复于:2005-06-15 09:43:24
这是绑定了tty的,所以还好做,
没绑定tty的就难点了,判断IP和tty的对应关系就很麻烦了,呵呵
留给老大们去做了 :em05:

top
推荐导读
推荐导读
bottom
top
热门文章
热门文章
bottom