linux系统中中断已连接的用户

时间:2021-03-11 16:31:09

1、用w命令查看当前系统登录的用户

root@debian:~# w
15:27:05   up 3:48,   5 users,    load average:   0.49,   0.43,   0.43
USER   TTY    FROM         LOGIN@      IDLE    JCPU    PCPU WHAT
root    pts/0    172.16.115.13     11:38 42:34     0.16s   0.08s   vim /var/log/messages
root    pts/1    172.16.115.13     11:39 42:28     0.02s    0.02s   -bash
root    pts/2    10.10.1.139      13:25 2:01m     0.02s    0.02s   -bash
root   pts/3    10.10.2.159       13:25 2:01m     0.02s   0.02s   -bash
root   pts/4    172.16.115.16     13:25 2:01m     0.02s   0.02s   -bash

15:27:05   up 3:48,   5 users,    load average:   0.49,   0.43,   0.43

系统开机时间||**||运行时间||**||用户数
USER —登录的用户名
TTY   —登录后系统分配的终端号
FROM—远程主机名,即从哪儿登录来的
LOGIN@—何时登录
IDLE—空闲了多长时间,表示用户闲置的时间。这是一个计时器,一旦用户执行任何操作,该计时器便会被重置
JCPU—和该终端(tty)连接的所有进程占用的时间,这个时间里并不包括过去的后台作业时间,但却包括当前正在运行的后台作业所占用的时间
PCPU—指当前进程(即在WHAT项中显示的进程)所占用的时间
WHAT—当前正在运行进程的命令行

2、使用ps -u username命令查看用户进程,然后kill掉对应用户的sshd进程

root@gp-segment1:~# ps -u root | grep sshd
888 ? 00:00:00 sshd
2134 ? 00:02:19 sshd
6062 ? 00:00:00 sshd
6896 ? 00:00:00 sshd
25433 ? 00:00:04 sshd

root@gp-segment1:~# kill -9 2134 

3、还有另外一种方式是使用pkill命令终止用户连接

root@debian:~# w
15:27:05   up 3:48,   5 users,    load average:   0.49,   0.43,   0.43
USER   TTY    FROM         LOGIN@      IDLE    JCPU    PCPU WHAT
root    pts/0    172.16.115.13     11:38 42:34     0.16s   0.08s   vim /var/log/messages
root    pts/1    172.16.115.13     11:39 42:28     0.02s    0.02s   -bash
root    pts/2    10.10.1.139      13:25 2:01m     0.02s    0.02s   -bash
root   pts/3    10.10.2.159       13:25 2:01m     0.02s   0.02s   -bash
root   pts/4    172.16.115.16     13:25 2:01m     0.02s   0.02s   -bash

root@debian:~# pkill  -kill -t pts/0 

其它:通过用户的ssh进程号来中断用户连接:

使用pstree -p 命令来查出用户的会话ID。

.............................

├─sshd(928)───sshd(5649)───bash(5793)───pstree(13046)
├─syslog-ng(3092)
├─systemd-journal(223)
├─systemd-logind(959)
└─systemd-udevd(224)

根据上图中的sshd部分,删除最近连接的会话5649。

kill -9 5649