如何在 Linux 中使用 Shell 脚本终止用户会话?

系统 Linux
本文介绍如何终止所有用户会话、特定的用户回话。

[[387422]]

 

本文介绍如何终止所有用户会话、特定的用户回话。

终止所有用户会话

下面的shell脚本将通过获取用户会话的tty值来终止所有用户的活动会话,并使用pkill命令将其终止:

  1. [root@localhost ~]# vim kill-user-sessions.sh 
  2.  
  3. #!/bin/bash 
  4. usession=$(w | awk '{if (NR!=1) {print $2 }}' | tail -n +2) 
  5. for i in $usession 
  6. do 
  7.   pkill -9 -t $i 
  8. done 

给脚本加上可执行权限:

  1. [root@localhost ~]# chmod +x kill-user-sessions.sh 

上面脚本使用w命令列出登录系统的用户,使用awk命令列出行号不等于1的行,并打印第二列,也就是终端名称的哪一行。使用tail命令列出第2行到末行的内容。

如何终止指定用户的会话?

下面实例中,运行脚本后面加上用户名,就会终止这个用户的登录。

  1. [root@localhost ~]# cat kill-specific-user-sessions.sh  
  2. #!/bin/bash 
  3. usession=$(w $1 | awk '{if(NR!=1) {print $2}}'|tail -n +2) 
  4. for i in $usession 
  5. do 
  6. pkill -9 -t $i 
  7. done 

运行脚本测试:下面列出登录的用户,想终止user01的会话。

那么就运行脚本,后面参数加入用户名:

  1. [root@localhost ~]# ./kill-specific-user-sessions.sh user01 

然后使用w命令查看,user01会话已经被终止了。

总 结

本文简要介绍了如何使用Shell脚本终止用户会话。

本文转载自微信公众号「 Linux就该这么学」,可以通过以下二维码关注。转载本文请联系 Linux就该这么学公众号。

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2022-10-09 10:18:44

LinuxShell脚本

2023-02-27 17:36:33

LinuxSIGINT信号

2022-12-22 20:47:01

脚本循环结构

2017-05-19 13:19:16

LinuxAsciinema终端会话

2019-09-16 19:00:48

Linux变量

2022-03-30 09:32:32

BashtestLinux

2022-11-23 08:14:42

bash 脚本test 命令

2011-08-23 09:56:52

UnicodeLua

2022-11-18 10:16:26

Linuxwc 命令

2018-06-26 09:15:24

Linux命令history

2018-05-16 10:32:06

Linux命令find

2011-08-25 13:22:40

CEGUILua脚本

2011-08-25 09:55:27

2022-10-25 09:07:28

Linuxxargs命令

2018-10-09 08:30:55

UbuntuLinuxRAR文件

2023-09-14 15:05:33

grep正则表达式

2018-01-09 09:00:01

Linux命令文件压缩

2018-02-01 17:32:30

LinuxUNIXBash Shell

2016-12-16 09:23:29

LinuxShell脚本

2021-01-13 09:40:26

Linuxexport命令
点赞
收藏

51CTO技术栈公众号