|
山地獾 |
发表于: 2002/09/23 05:31pm
|
| 程序好像倒不难写,不过还是觉得亲眼看一看,然后打个电话就通知一下就可以了 |
| |
|
zhzyhq |
发表于: 2002/09/23 09:31pm
|
| 100来个终端,电话也不固定。山地獾,简单,就请下笔吧。 :em02: |
| |
|
山地獾 |
发表于: 2002/09/24 02:09am
|
## 当同一地址的终端数小于或等于cnt4ip时,不理会 #cnt4ip=3 cnt4ip=0 #测试时取值finger -f | awk '{printf("%s|/dev/tty%s\n",substr($0,60,15),substr($0,32,2)) }' | sed 's/^|/127.0.0.1|/g' |sort >fl1 cut -d "|" -f1 fl1 |sort -u > fl2 for ip in `cat fl2` do grep $ip fl1 >fl3 lines=`wc -l fl3 |awk '{print $1}'` if [ $lines -le $cnt4ip ] then continue fi for str in `cat fl3` do str4ip=`echo $str | awk -F "|" '{print $1}'` str4tty=`echo $str | awk -F "|" '{print $2}'` echo "\n快点退出! \n不然我扣你的钱!\n" > $str4tty done done
|
| |
|
山地獾 |
发表于: 2002/09/24 02:13am
|
| sco504下通过 |
| |
|
guevara |
发表于: 2002/12/19 08:21pm
|
| 谢谢。 |
| |
|
laoxia |
发表于: 2002/12/20 01:39am
|
| > echo "\n快点退出! \n不然我扣你的钱!\n" > $str4tty 俺就喜欢这句,建议改为: echo "\n快点退出! \n不然枪毙\n" > $str4tty
|
| |
|
红袖添香 |
发表于: 2002/12/20 04:46am
|
这样子倒不如把这一脚本修改一下,放到/etc/profile中去或者在当中调用一下,他们的$HOME/.profile必须读一下/etc/profile,$HOME/.profile性质改为只读。当统计发现已经3个终端了,就不让继续login就好了。扣他们的钱一说,也可以放进login message中去嘛,呵呵。 |
| |
|
llc107 |
发表于: 2002/12/20 03:08pm
|
| 红袖添香 的方法很好呀! |
| |
|
gguuoorr |
发表于: 2002/12/25 06:57pm
|
怎么修改才能实现红袖添香说的功能呀?
|
| |
|
xbycn |
发表于: 2002/12/25 08:23pm
|
| 可以把那段代码写在一个SHELL 里。然后在.profile 文件中调用一下。 |
| |
|
红袖添香 |
发表于: 2002/12/26 03:15am
|
既然又有人up了,就简单再说一下。 以前在BSD版里也有人问到这样类似的问题,能否限制用户的登录次数。当时我是这么回答的,理论上可以实现,但实际中可能要考虑挺多东西,要根据自己的情况作调整。 强制用户login前必须执行下面这一段脚本,可以是/etc/profile或另外一个单独脚本或其它形式,在$HOME/.profile中调用它,并且规定只读属性,总之要保证,必须让它被执行过。还要考虑到,如果用户使用其它shell, 或根本就是为了逃避$HOME/.profile的限制而故意chsh后使用其它shell的情况等等。 。。。
LOGINS=`who | grep $USER | wc -l` if [ "$LOGINS" -ge 3 ]; then echo "$USER: too many login sessions, sorry!" exit fi 。。。
|
| |
|
俺 |
发表于: 2002/12/26 02:24pm
|
[quote][b]下面引用由[u]laoxia[/u]在 [i]2002/12/20 01:39am[/i] 发表的内容:[/b] > echo "\n快点退出! \n不然我扣你的钱!\n" > $str4tty 俺就喜欢这句,建议改为: echo "\n快点退出! \n不然枪毙\n" > $str4tty [/quote] 俺想改为 echo "\n退出! \n然后将罚款交至帐号XXXX\n" > $str4tty XXXX是的帐户 |
| |
|
nile |
发表于: 2002/12/26 03:43pm
|
我在solaris 5.6上测试, 好像要这样写: finger -f | awk '{printf("%s|/dev/%s\n",substr($0,60,15),substr($0,32,6))}' |
| |
|
|