真正实现限制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;
}

(0)

相关推荐

  • Linux系统中通过引导进入单用户模式的方法

    熟知在linux进入单用户模式的方法(single)是管理员必须具备的,因为单用户模式是一种在不影响其他用户(或不被其他用户影响)的情况下,修改系统配置或者实施维护工作的方式.单用户模式也是在受损系统 ...

  • 在Cisco IOS上限制NAT的单用户连接数的方法

    如何在Cisco IOS上限制NAT的单用户连接数呢?本文主要从技术手段,详细的向大家介绍了IOS如何去利用NAT单用户限制用户的连接数,那么我们要怎么去操作呢?相信看完此文会对你有所帮助。 在Cis ...

  • 手机QQ切换登录账号和新注册用户登录的方法

    QQ是大家最喜爱的通讯软件之一,它深受用户欢迎,给我们带来很多便捷和乐趣,可是有些小伙伴还不太熟悉它的一些设置,比如,很多人不清楚如何切换登录账号,也有朋友不知道怎么进行新注册用户登录,小编今天给大家 ...

  • 进入Linux单用户模式的方法

    有时我们可能会在Linux下记不住root的密码或者磁盘进行了自动挂载,而密码记不住,磁盘丢失,就会造成不能正常进入Linux系统,如何来解决这个问题呢? 实际上Linux系统本身给了我们解决方法,就 ...

  • Linux认证Fedora12以root用户登录的方法

    首先以用户账号进入终端,允许root账号登陆: :wq保存并退出。 :wq保存并退出。 这样就可以使用root进行GUI登陆了。 Fedora12的网络服务不能自动启动,同样需要修改 192.168. ...

  • Win10系统本地用户如何改为用Micrososft用户登录?

    win10中,微软账号登录后,会自动将微软账号设置为你进入系统的时候的解锁账号,这有时候并不方便.一般都想用本地账号来登录,那么Win10系统本地用户如何改为用Micrososft用户登录?下面小编就 ...

  • Win10系统怎么设置才能开机显示选择用户登录?

    Windows10系统要怎样才能在开机时选择用户再登陆(录)?也就是说,如果有两个或者多个用户帐户,在电脑开机时要能够选择其中的任一用户帐户登录.如何设置能在电脑开机时可以选择任一用户帐户登录呢? 1 ...

  • VB用Access数据库创建用户登录

    VB用Access数据库创建用户登录 步骤/方法 01 一.使用Access数据库创建用户登录,首先必须设置数据库,为了使大家容易理解,这里仅仅设置用户登录表:(数据库是A.Mdb,登录表是:A1) ...

  • Win10系统本地用户如何改用微软用户登录?

    由于网络连接故障,重装Windows10系统,使用了本地用户登录安装,现在网络连接没有问题了,想更改为用 Micrososft 用户登录.应该如何操作呢? 操作方法 01 Win10系统本地用户改用微 ...