SSHログインフック?

SSHログインフック?

ユーザーがSSHを使用して接続するたびにスクリプト/コマンドを実行する方法はありますか?グローバルに設定できます(スクリプトを実行するときなど)。どのユーザーログイン)?

Identicaでこの質問を見つけましたが、まだ回答がなく、とにかく知りたいです。

答え1

すべてのユーザーに適用されますか、それとも特定のユーザーに適用されますか?個々のユーザーの場合は、.bashrcすべてのユーザーに対してそのファイルに設定します。pam_exec

ユーザーがから来ている場合は、sshd次の行を追加する必要があります/etc/pam.d/sshd。他のファイルは、そのユーザーのソースによって異なります。

session optional pam_exec.so seteuid  /path/to/my/hook.sh

テスト目的でこのモジュールが含まれているoptionalため、失敗してもログインできます。動作すると確信したら、optionalに変更できますrequired。これにより、フックスクリプトが正常に実行されないとログインできなくなります。

メモ:いつものように、ログイン設定を変更するときは、バックグラウンドでバックアップシェルを開き、新しい端末でログインをテストします。

答え2

ローカルユーザーではなくSSHを使用しているユーザーにのみ影響を与える別の方法があります(緊急の状況ではより良い可能性があります)

以下のSSHのマニュアルページのスニペットを参照してください。

この場合、ユーザーは通常ファイル自体を変更できます(.bashrcと同じ種類)。

 ~/.ssh/rc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

これはグローバルであり、一般ユーザーは変更できません。

 /etc/sshrc
         Commands in this file are executed by ssh when the user logs in, just before the user's shell (or command) is started.  See the sshd(8) manual page for more information.

関連情報