SSH会话closures时如何执行命令?

例如,如果我closures腻子或只是失去互联网连接,如何使服务器执行特定的命令?

Mikael在评论中的解决scheme非常完美。 感谢帮助

因为serverfault默认我的答案评论,我复制从这个职位的正确答案:

最好的办法是使用pam。

在/etc/pam.d中你将有几个文件,其中一个将被称为sshd。 如果你只想影响ssh,而不是其他的login(比如GUI,或者真正的TTY),那么你需要这个文件。 如果你想影响所有的login,你会想要一个“通用”文件。 这个其他'普通'文件的名称因发行版本而异,但是您可以通过在sshd文件中跟踪include和substack语句来追踪它,直到到达基本文件。

一旦在/etc/pam.d中find了要使用的文件,请在会话部分添加如下所示的行:

session optional pam_exec.so quiet /etc/pam_session.sh 

这将导致每次有人login和注销时(无论是优雅还是不正常)调用/etc/pam_session.sh。

现在你只需要创build/etc/pam_session.sh。 下面是一个例子,你可以用它来运行每次有人注销的东西:

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

(不要忘记chmod a + x脚本)