PAM モジュールpam_exec
を使用して、セッション中にアカウントのセットアップとティアダウン アクティビティを実行したいと考えています。何が起こっているのかを確認できるように、いくつかのランタイム データを実行してログに記録する簡単なテスト スクリプトを作成しました。
exec されたスクリプトは、PAM をトリガーするコマンドを実行している人の有効な UID によって実行可能でなければならないように思えます。意味あり。ただし、このプロセスにはもう少しセキュリティが必要です。たとえば、アカウントのログイン/ログアウト時にレコードをデータベースに突っ込むスクリプトがある場合、そのスクリプトは常にすべてのユーザーが実行できる必要があるように思えます。
ルートまたはその他の特別な目的のアカウントのみがスクリプトを表示および実行できるようにpam_exec
suid
し、特権のないユーザー用のスクリプトを用意することを強く望んでいます。
なんで?データベーススクリプトの場合、ユーザーがログインして手動でスクリプトを実行し、一見「ログアウト」することは望ましくありません。
スクリプトを「sudoers」ファイルに入れようと考えましたが、それでも誰でも好きなときにスクリプトを実行できます。
唯一のオプションは、pam_exec をハックして「run as」オプションを許可することのようです。
金曜日の午後遅く、些細なことを見逃しているかもしれません。より良い方法はありますか?