Linux|终端管理|如何踢掉操作系统内的用户

一,

关于终端的一些基本概念

tty、pty 和 pts 是在类 Unix 系统(包括 Linux)中与终端交互相关的概念。它们各自代表不同的方面,并且有着密切的关联。

  1. tty (Teletype)

    • tty 原指老式的电传打字机,后来泛指任何类型的终端设备。
    • 在现代Linux系统中 /dev/tty* 表示实际或虚拟的终端接口,例如 /dev/tty1 到 /dev/tty6 通常是系统的本地控制台(文本模式登录界面),而 /dev/tty 指向当前进程关联的控制终端,这里请注意,本地这个词是要重点突出的!!!!!!!!!!另一个是真实的服务器,比如下图,我这个就是tty,虽然是VMware的虚拟机
  2. pty (Pseudo-TTY, 伪终端)

    • pty 是一种软件模拟的终端设备,它提供了一种机制,使得一个进程可以像操作真正的终端一样与另一个进程进行交互,即使后者不是直接连接到物理TTY设备上。
    • 伪终端由两部分组成:一个“主设备”和一个“从设备”。主设备通常称为 ptmx(pseudo-terminal master multiplexer),从设备一般表示为 /dev/pts/*,如 /dev/pts/0/dev/pts/1 等。
    • 当应用程序(如 ssh、telnet 或者终端模拟器如 gnome-terminal)打开一个pty时,操作系统会创建一对pty设备,其中一方(slave端,即pts)用于接受用户的输入并显示输出,另一方(master端)则可以被服务端程序读写,从而实现远程或者本地的命令行交互。
  3. pts (Pseudo-Terminal Slave, 伪终端从设备)

    • pts 是伪终端的一部分,是用户通过终端模拟器或网络协议(如SSH)登录后使用的那部分逻辑终端,它模拟了物理TTY的行为,允许非本地用户获得类似于本地控制台的交互体验。
    • 当你在 SSH 连接到一台远程服务器时,你实际上是在使用一个 pts 设备,可以通过执行 tty 命令查看当前shell所在的pts设备,例如输出可能是 /dev/pts/2

例如,我这个xshell的登录窗口就是pts了

总结:

  • tty 通常指的是所有类型的终端接口,包括物理终端和虚拟终端。
  • pty 是一种软件模拟的终端设备,它可以模拟真实终端的功能,使得远程或本地进程能够像对待真实的TTY那样工作。
  • pts 是 pty 的一部分,具体是指伪终端的从设备,它是与用户交互的实际入口点,在许多情况下用于支持远程登录和本地命令行应用的子进程。

二、

终端管理的意义

通过w,who,tty这些命令可以查看到有哪些终端是登录的,登录的终端是否是符合我们的预期,例如,有不怀好意的人登录了云服务器,那么,其实通过w命令,我们是能初步的判断哪些人是非法的,哪些人是合法合规的登录

为什么这么说呢?例如,现在我的服务器有两个登录,一个是tty1,一个是pts/0 ,而pts/0 是从我的网关登录的,那么,这就可以确定,我的网络里只有我自己啦

如果此时把from里的IP封禁掉,自然的就登录不了了

 06:53:46 up 29 min,  2 users,  load average: 0.00, 0.01, 0.01
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      06:44    9:06   0.00s  0.00s -bash
root     pts/0    192.168.123.1    06:25    2.00s  0.01s  0.00s w
[root@centos7 ~]# who
root     tty1         2024-03-07 06:44
root     pts/0        2024-03-07 06:25 (192.168.123.1)

三、

t掉其它终端的用户

这个其实非常简单,一个命令的事情(此命令无回显,也就是输出):

pkill -kill -t tty1

想要t掉另一个登录,自然就是下面的命令了(此命令无回显,也就是输出)

pkill -kill -t pts/0

有时候上面这个命令会不生效,那么,下面这个命令也是等价的(此命令是暴力飞踢!!!!不会给终端任何反应时间,需要慎用):

pkill -9 -t pts/0

 那么,还有一个命令更为暴力的,会让所有用户无法登录,必须要重启sshd服务,才会恢复登录:

pkill -u root

 以上这个命令踢完所有root用户后,将无法登录,直到sshd服务重启,在生产环境绝对不可使用,核弹级别的命令!!!!除非您可以本地登录系统后重启sshd服务

🆗,排查系统重启记录以及登录流水:

[root@centos7 ~]# last
root     pts/0        192.168.123.1    Thu Mar  7 07:12   still logged in   
reboot   system boot  3.10.0-1062.el7. Thu Mar  7 07:11 - 07:21  (00:09)    
root     tty1                          Thu Mar  7 06:44 - 07:09  (00:25)    
root     pts/0        192.168.123.1    Thu Mar  7 06:25 - down   (00:45)    
reboot   system boot  3.10.0-1062.el7. Thu Mar  7 06:24 - 07:10  (00:46)    
root     pts/0        192.168.123.1    Tue Mar  5 23:56 - crash (1+06:28)   
root     pts/0        192.168.123.1    Tue Mar  5 21:44 - 23:44  (02:00)    
root     pts/1        192.168.123.1    Sat Mar  2 19:09 - 08:37  (13:27)    
root     pts/0        192.168.123.1    Sat Mar  2 18:22 - 08:37  (14:14)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  2 18:19 - 07:10 (4+12:51)   
root     pts/1        192.168.123.1    Sat Mar  2 05:53 - crash  (12:26)    
root     pts/0        192.168.123.1    Sat Mar  2 05:19 - crash  (13:00)    
reboot   system boot  3.10.0-1062.el7. Sat Mar  2 05:19 - 07:10 (5+01:51)   
root     pts/1        192.168.123.1    Fri Mar  1 05:42 - crash  (23:37)    
root     pts/0        192.168.123.1    Fri Mar  1 04:57 - crash (1+00:21)   
reboot   system boot  3.10.0-1062.el7. Fri Mar  1 04:57 - 07:10 (6+02:13)   
reboot   system boot  3.10.0-1062.el7. Wed Feb 28 05:11 - 05:11  (00:00)    
root     pts/0        192.168.123.1    Mon Jun 19 02:20 - crash (254+02:50) 
reboot   system boot  3.10.0-1062.el7. Mon Jun 19 02:20 - 05:11 (254+02:51) 
root     pts/0        192.168.123.1    Mon Jun 19 02:11 - crash  (00:08)    
reboot   system boot  3.10.0-1062.el7. Mon Jun 19 02:10 - 05:11 (254+03:01) 
root     pts/0        192.168.123.1    Sun Jun 18 17:55 - crash  (08:14)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:51 - 05:11 (254+11:20) 
root     tty1                          Sun Jun 18 17:50 - 17:51  (00:00)    
root     pts/0        192.168.123.1    Sun Jun 18 17:50 - crash  (00:01)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:43 - 05:11 (254+11:28) 
root     tty1                          Sun Jun 18 17:21 - 17:21  (00:00)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 17:19 - 17:21  (00:01)    
root     tty1                          Sun Jun 18 16:41 - 09:19  (-7:-21)   
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 16:10 - 17:21  (01:10)    
reboot   system boot  3.10.0-1062.el7. Sun Jun 18 08:49 - 17:21  (08:32)    

wtmp begins Sun Jun 18 08:49:26 2023
[root@centos7 ~]# date
Thu Mar  7 07:21:27 CST 2024

 可以看到,最后一次重启时间是7点11重启的,也就是第二行的倒数第三列

🆗,本文仅仅做为一个简单的记录,很多东西不写记不住,感觉稍微有点意思

  • 40
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风_END

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值