linux putty shell脚本之防卫主机讲解
2022/1/2 7:12:05
本文主要是介绍linux putty shell脚本之防卫主机讲解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
平时车机调试时,需要用putty连接到车机,但是大家连接的默认权限都是root,这涉及到一个问题,如果我不想让别人用怎么办,同时我也想告诉无论是谁连接到这台主机,当前的主机正在被使用。
因为默认putty连接都是用ssh的,每次连接都会有一个ssh @pts/,从0递增
user 代表终端的0….n
while 中i -ne -l 代表假如i的值不等于-1时,那么这个循环一直在执行, netstat -atp | grep ‘10.1.23.37|10.1.23.52’ | awk -F ‘:’ ‘{print" role="presentation">i-ne-l代表假如i的值不等于-1时,那么这个循环一直在执行,
netstat-atp|grep‘10.1.23.37|10.1.23.52’|awk-F‘:’‘{printi-ne-l代表假如i的值不等于-1时,那么这个循环一直在执行,netstat-atp|grep‘10.1.23.37|10.1.23.52’|awk-F‘:’‘{print9}' | awk -F ' ' '{print $1}’
的意思是找到连接是10.1.23.37 或 10.1.23.52 的端口
ptspid=(lsof|grep" role="presentation">(lsof|grep(lsof|grepline | grep sshd | awk -F ’ ’ ‘{print $2}’ | uniq -d)
循环中找到10.1.23.37或10.1.23.52连接到主机的进程pid号
busybox ps | grep pts | grep 30712 | awk -F ‘/’ ‘{print $2}’
根据pid号找到对应的pts 的number
并将number存到arrayptsnum的数组
接下来在获取所有连接到主句的tty number,并与arrayptsnum数组中的number比较,如果不属于arrayptsnum ,那么exist=NO,向 /dev/pts/number 中写入信息,那么对方终端就会获取信息。
找到对方tty的pid号,kill掉,对方就会被强制关闭连接。目的达到了。
#!/bin/bash
user=$(busybox ps | grep ssh | grep -v grep | awk -F ' ' '{print $5}' | awk -F '/' '{print $2}')
i=0
while [ $i -ne -1 ]
do
user=$(busybox ps | grep ssh | grep -v grep | awk -F ' ' '{print $5}' | awk -F '/' '{print $2}')
port=$(netstat -atp | grep '10.1.23.37\|10.1.23.52' | awk -F ':' '{print $9}' | awk -F ' ' '{print $1}')
ptsloop=0
for line in $port
do
ptspid=$(lsof | grep $line | grep sshd | awk -F ' ' '{print $2}' | uniq -d)
ptsnum=$(busybox ps | grep pts | grep $ptspid | awk -F '/' '{print $2}')
arrayptsnum[$ptsloop]=$ptsnum
ptsloop=$((ptsloop+1))
done
exist="NO"
for line in $user
do
for var in ${arrayptsnum[@]};
do
if [ $line -eq $var ]
then
exist="YES"
break;
else
exist="NO"
fi
done
if [ $exist=="NO" ]
then
echo -e "\033[31m WARNING: \033[0m this is autotest Machine,now the autotest is running.please exit,after 5 seconds you will be killed" > /dev/pts/$line
echo -e "\033[31m 5 \033[0m" > /dev/pts/$line
sleep 1
echo -e "\033[31m 4 \033[0m" > /dev/pts/$line
sleep 1
echo -e "\033[31m 3 \033[0m" > /dev/pts/$line
sleep 1
echo -e "\033[31m 2 \033[0m" > /dev/pts/$line
sleep 1
echo -e "\033[31m 1 \033[0m" > /dev/pts/$line
sleep 1
pid=$(busybox ps | grep pts/$line | grep -v grep | awk -F ' ' '{print $1}')
kill $pid
fi
done
sleep 0.3
done
这篇关于linux putty shell脚本之防卫主机讲解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法