当用户与ssh断开连接时如何运行脚本

时间:2019-07-12 08:39:43

标签: bash ssh logout

我有一个ssh服务器,我希望每次有用户登录和注销时都执行一个特定的脚本。

对于那些登录的用户,我的命令放在.bashrc的末尾,但是对于那些注销的用户,我的操作与.bash_logout相同,但问题是如果用户关闭终端而是写退出,不执行此文件。

在某个地方(可能与ssh相关),放置了一些脚本,以便在用户与ssh断开连接时执行脚本?

1 个答案:

答案 0 :(得分:1)

您可以在trap上使用pam或使用SIGHUPHere是有关如何使用pam进行ssh会话管理的详细说明。

以上link的相关部分:

/etc/pam.d/sshd

中添加以下内容
session     optional    pam_exec.so quiet /etc/pam_session.sh

创建pam_session.sh并添加脚本以检测ssh断开连接(因为pam_session.sh将在登录和注销期间被调用)。

#!/bin/sh
if [ "$PAM_TYPE" = "close_session" ]; then
  #DO SOMETHING
fi