ログアウト時にユーザープロセスを終了する

ログアウト時にユーザープロセスを終了する

ユーザーのリモートXセッションを処理するUbuntuサーバーがあります。しかし、私はユーザーがどのようなバックグラウンドプロセスを実行することを許可したくありません。したがって、私の質問は次のようになります。

ユーザーがバックグラウンドプロセスを持たないようにするにはどうすればよいですか?または、ログインしていないユーザーのプロセスを簡単に終了する方法はありますか?

ベストアンサー1

私のサーバーでも同様のことをしました。全体的な内容はこんな感じです

/etc/pam.d/login1)プロジェクトの下部に追加しますsession

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

2)次に/etc/pam_session.sh(およびchmod +x)を作成します。

#!/bin/bash
[[ "$PAM_USER" == "root" ]] && exit 0

SESSION_COUNT="$(w -h "$PAM_USER" | wc -l)"

if (( SESSION_COUNT == 0 )) && [[ "$PAM_TYPE" == "close_session" ]]; then
  pkill -u "$PAM_USER"
fi

必要sleep 5; pkill -9 -u "$PAM_USER"に応じて、後でこのようなものを追加してpkill実際に死んだかどうかを確認できます。

これはログインシェルが終了したときにのみ呼び出されるため、自動化されたシステムアクティビティには影響しません。ただし、セキュリティを強化するには、UIDが1000より大きいかどうかなどのチェックを追加できます。

おすすめ記事