GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL – ユーザーが ssh セッションからログアウトしたときにスクリプトまたはコマンドを実行する方法

ここでの質問は、ログインしているユーザーが ssh セッションからログアウトするときに、システムが特定のスクリプトまたはコマンドを実行する必要があるということです。つまり、ユーザーが ssh セッションからログアウトしたときに目的のアクションを実行するポスト スクリプトまたはトリガーを構成するようなものです。

これは、CentOS/RHEL システムの pam モジュールを使用して簡単に実行できます。以下に概説する手順に従って、pam モジュールを構成します。

1. 以下のエントリを pam 構成ファイル /etc/pam.d/sshd に追加します。 :

# vi /etc/pam.d/sshd
session     optional    pam_exec.so quiet /var/tmp/post_session.sh

ここでは、
/var/tmp/post_session.sh ユーザーがログアウトしたときに実行されるスクリプトです。

/etc/pam.d/sshd 構成ファイルは次のようになります:

# cat /etc/pam.d/sshd 
#%PAM-1.0
auth    required pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
# Used with polkit to reauthorize users in remote sessions
-auth      optional     pam_reauthorize.so prepare
account    required     pam_nologin.so
account    required     pam_access.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed 
in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
####Trigger with user logout #####
session     optional    pam_exec.so quiet /var/tmp/post_session.sh
####
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

2. これで、必要に応じてポスト トリガー スクリプトを構成できます。この投稿のために、ユーザーのログアウト時刻をファイルに追加します。例:

# cat /var/tmp/post_session.sh
#!/bin/bash
if [ "$PAM_TYPE" = "close_session" ]; then
date >> /var/tmp/user_logout.out        ##  This is the action to be performed when user logs out.
fi

3. /var/tmp/post_session.sh スクリプトに実行権限を付与します。

# chmod ugo+x /var/tmp/post_session.sh

4. ログインとログアウトを複数回行って確認すると、すべてのログアウトの時間がファイル /var/tmp/user_logout.out に追加されます。 .


Cent OS
  1. CentOS / RHEL 7 :カーネル コマンド ラインを変更する方法

  2. CentOS/RHEL 7 で systemd にカスタム スクリプトを追加する方法

  3. CentOS/RHEL で Pstack コマンドを実行する方法

  1. CentOS、RHEL、Fedoraでユーザーを追加および削除する方法

  2. CentOS / RHEL :特定のコマンドを実行しているユーザーを見つける方法は?

  3. CentOS / RHEL :ユーザーのログイン シェルを変更する方法

  1. SSHで実行中のユーザーのプロセスを表示するにはどうすればよいですか?

  2. CentOS/RHEL 7 で root 以外のユーザーとして rsyslog を実行する方法

  3. CentOS/RHEL 5 で NTPD を起動するときに ntpdate を自動的に実行する方法