ログアウトまたは切断したときにコマンドを強制しますか?

ログアウトまたは切断したときにコマンドを強制しますか?

SSH経由でシステムにログインしていますが、意図的に(シェルシャットダウン)またはSSH接続がダウン/終了したため、ログアウト時にコマンドを強制的に実行したいと思います。これを設定する方法はありますか?今のところ、SSHが閉じられたときに送信される信号(SIGHUP?)を傍受してコマンドを実行するプログラムでログインシェルを変更するのが最善のようですが、よりきれいな解決策があるかどうか疑問に思います。

ベストアンサー1

最良の方法は次のとおりです。パム

複数のファイルがあり、/etc/pam.dそのうちの1つはsshdsshにのみ影響し、他のログイン(GUIや実際のTTYなど)に影響を与えたくない場合は、このファイルが必要です。
すべてのログインに影響を与えるには、「共通」ファイルが必要です。この他の「一般」ファイルの名前はディストリビューションによって異なりますが、includeデフォルトのファイルが見つかるまでファイルのステートメントに沿って追跡できます。substacksshd

使用するファイルを識別したら、セクション/etc/pam.dに次の行を追加しますsession

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

これにより、/etc/pam_session.sh誰かがログインしてログアウトするたびに(通常どおりでも)呼び出されます。

誰かがログアウトするたびに何かを/etc/pam_session.sh実行するために使用できる例は次のとおりです。

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

chmod a+x(台本を忘れないでください)

おすすめ記事