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

时间:2021-09-14 16:31:04

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

[root@rhel7 ~]# w
 02:48:04 up  4:35,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    02:26    4.00s  0.06s  0.02s w
lxj2     pts/1    192.168.1.100    02:47   58.00s  0.00s  0.00s -bash
rusky    pts/2    192.168.1.100    02:47    5.00s  0.01s  0.01s -bash
[root@rhel7 ~]# 

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

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

[root@rhel7 ~]# ps -u lxj2
  PID TTY          TIME CMD
 3143 ?        00:00:00 sshd
 3144 pts/1    00:00:00 bash
[root@rhel7 ~]# kill -9 3143
[root@rhel7 ~]# ps -u lxj2
  PID TTY          TIME CMD
[root@rhel7 ~]# w
 04:10:25 up  5:57,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    02:26    1.00s  0.17s  0.00s w
rusky    pts/2    192.168.1.100    03:03    1:07m  0.00s  0.00s -bash
[root@rhel7 ~]# 

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

[root@rhel7 ~]# w
 06:48:22 up  8:35,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    02:26    6.00s  0.18s  0.01s w
lxj2     pts/1    192.168.1.100    06:48    3.00s  0.02s  0.02s -bash
rusky    pts/2    192.168.1.100    03:03    3:45m  0.00s  0.00s -bash
[root@rhel7 ~]# pkill -kill -t  pts/1
[root@rhel7 ~]# w
 06:49:04 up  8:36,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    02:26    0.00s  0.18s  0.00s w
rusky    pts/2    192.168.1.100    03:03    3:46m  0.00s  0.00s -bash
[root@rhel7 ~]# pkill -kill -t  pts/2
[root@rhel7 ~]# w
 06:49:18 up  8:36,  1 user,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    02:26    6.00s  0.19s  0.01s w
[root@rhel7 ~]# 

 ========

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

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

[root@rhel7 test]# pstree -p
.......
├─rhnsd(1439)
           ├─rhsmcertd(1421)
           ├─rngd(728)
           ├─rsyslogd(740)─┬─{rsyslogd}(804)
           │               └─{rsyslogd}(805)
           ├─rtkit-daemon(724)─┬─{rtkit-daemon}(764)
           │                   └─{rtkit-daemon}(765)
           ├─smartd(676)
 ├─sshd(1422)─┬─sshd(7495)───bash(7502)───su(8544)───bash(8545)───su(8965)───bash(8970)───pstree(10449)
           │            ├─sshd(7788)───bash(7792)───su(7873)───bash(7874)
           │            └─sshd(8609)───sshd(8615)───bash(8618)
           ├─systemd-journal(474)
           ├─systemd-logind(727)
           ├─systemd-udevd(516)
           ├─tuned(1418)─┬─{tuned}(1478)
           │             ├─{tuned}(1479)
           │             ├─{tuned}(1480)
           │             └─{tuned}(1483)
           ├─udisksd(1839)─┬─{udisksd}(1840)
           │               ├─{udisksd}(1842)
           │               ├─{udisksd}(1843)
           │               └─{udisksd}(1844)
           ├─upowerd(1695)─┬─{upowerd}(1696)
           │               └─{upowerd}(1697)
           └─wpa_supplicant(989)

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

kill -9 7788