首 页 » VPS管理维护 » 真正实现限制SSH单用户登录

真正实现限制SSH单用户登录

2010-04-09 | 浏览人数: 7,536次 | 分类: VPS管理维护 | 2条评论 | 查看评论 发表评论

功能: 实现root之外的用户只能登录一个ssh
使用方法: 用root权限在后台(比如screen里)运行这个脚本

#!/usr/bin/perl -w
use strict;
sub main
{
    my @lines = `ps -eo user,pid,etime,cmd | grep sshd`;
    my $users;
    for my $line (@lines) {
        if(my ($user, $pid, $etime, $cmd) = $line =~ /^([^s]+)s+(d+)s+([^s]+)s+(sshd:.+)$/) {
            next if($user eq ‘root’);
            my $proc = {‘pid’, $pid, ‘etime’, $etime, ‘cmd’, $cmd};
            push @{$users->{$user}}, $proc;
        }
    }
    for my $key(keys(%$users)) {
         my @sshs = sort {
            my ($lb, $la) = (length($b->{‘etime’}), length($a->{‘etime’}));
            if($lb == $la) {
                $b->{‘etime’} cmp $a->{‘etime’};
            } else {
                $lb <=> $la;
            }
        } @{$users->{$key}};
        for (1 .. 1) { shift @sshs; };
        for my $ssh (@sshs) {
            kill 9, $ssh->{‘pid’};
        }
    }
}
while(1) {
    main;
    sleep 3;
}

转自:全球主机交流论坛   greensnow

原创文章如转载,请注明:转载自深度VPS [ http://www.deepvps.com ]
[复制本文链接发送给您的好友]
  • 上一篇:
  • 下一篇:
  • 日志信息 »

    该日志于2010-04-09 23:35由 deepvps 发表在VPS管理维护分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

    相关日志 »

    共有2条评论 [点此发言]

    1. 1楼 ooxx 2012年07月11日 11:00

      怎么运行脚本? :?: :arrow:

      [回复]

      deepvps 2012年07月11日 23:33 回复:

      编辑成sh后缀的文件,然后运行./xx.sh就可以啦。

      [回复]

    发表评论 »

    = 11 + 14 (防止机器人评论)

     疑问 冷笑 悲伤 坏蛋 感叹 微笑 脸红 大笑 吃惊 惊讶 困惑 酷 大声笑 恼火 古怪 转眼睛 给眼色 好主意 箭头 一般 哭了 绿人