服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 真正实现限制SSH单用户登录的方法

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

2020-03-21 16:52Linux教程网 Linux

实现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; 

延伸 · 阅读

精彩推荐