国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

perl實現限制ssh最大登錄次數的方法

2020-02-23 19:44:28
字體:
來源:轉載
供稿:網友

對于實現限制ssh最大登錄次數的方法是不是很多小伙伴們很好奇呢?那么今天武林就為大家詳細介紹perl實現限制ssh最大登錄次數的方法,希望對大家有所幫助。

ssh limit perl腳本主要作用:
1.限制一個ssh用戶的最大登錄數為n,n可自定義。
2.支持白名單,如root、test登錄不受限制。

如果一個ssh用戶的最大登錄數超過指定數字,則后登錄的會把先前登錄的踢掉,以此達到控制登錄數的目的。

該腳本需要主機支持perl,如果沒有,可yum安裝。

腳本源碼:

#!/usr/bin/perl -wuse strict;#white listmy @ALLOW_USERS = qw{  test  root  lulu1};#the maximum number of ssh loginmy $LOGIN_TIMES = 1;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 grep {$user eq $_} @ALLOW_USERS;      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}};    $LOGIN_TIMES = 1 if $LOGIN_TIMES < 1;    for (1 .. $LOGIN_TIMES) { pop @sshs; };    for my $ssh (@sshs) {      kill 9, $ssh->{'pid'};    }  }}while(1) {  main;  sleep 3;}


【使用方法】

另存腳本存到root目錄,命名為limit.pl,然后執行:

echo "/root/limit.pl &" >> /etc/rc.d/rc.local (加入開機啟動)/root/limit.pl & (運行腳本)

這篇文章主要介紹了perl實現限制ssh最大登錄次數的方法,包括perl腳本支持支持白名單設置,例如root可以不限制登錄次數等內容。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 永安市| 玉林市| 五家渠市| 灵台县| 凯里市| 镇康县| 连平县| 曲水县| 大洼县| 乌拉特前旗| 南皮县| 手机| 和田县| 时尚| 蕲春县| 保山市| 青岛市| 正镶白旗| 潞城市| 汉中市| 宜州市| 搜索| 黔南| 新蔡县| 禄丰县| 巴青县| 昭苏县| 合作市| 武安市| 卓资县| 彰化市| 全州县| 石河子市| 临西县| 志丹县| 凌海市| 资兴市| 石渠县| 萨嘎县| 万源市| 江川县|