2

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

 2 years ago
source link: https://www.oschina.net/question/4084958_2324524
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

老孟的Linux私房菜 发布于 今天 03:31
本文介绍如何终止所有用户会话、特定的用户回话。
终止所有用户会话

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

[root@localhost ~]# vim kill-user-sessions.sh

#!/bin/bash
usession=$(w | awk '{if (NR!=1) {print $2 }}' | tail -n +2)
for i in $usession
do
  pkill -9 -t $i
done

如何在Linux中使用Shell脚本终止用户会话?如何在Linux中使用Shell脚本终止用户会话?
脚本加上可执行权限:

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

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

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

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

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

如何在Linux中使用Shell脚本终止用户会话?如何在Linux中使用Shell脚本终止用户会话?
运行脚本测试:下面列出登录的用户,想终止user01的会话。
如何在Linux中使用Shell脚本终止用户会话?如何在Linux中使用Shell脚本终止用户会话?
那么就运行脚本,后面参数加入用户名:

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

然后使用w命令查看,user01会话已经被终止了。
如何在Linux中使用Shell脚本终止用户会话?如何在Linux中使用Shell脚本终止用户会话?

总结

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK