pam_execに、現在のユーザーとしてスクリプトを実行するようにどのように指示できますか?

pam_execに、現在のユーザーとしてスクリプトを実行するようにどのように指示できますか?

セッションが開いたら、セッションを開いたユーザーとしてスクリプトを実行する必要があります。

/etc/pam.d/common-sessionに以下を追加しました。

session optional        pam_exec.so      log=/tmp/test_pam_foo.log /usr/local/bin/test_pam_foo.sh

また、pam_execオプションを有効にしてみました。seteuid

基本スクリプト /usr/local/bin/test_pam_foo.sh:

#!/bin/sh
id -u >> /tmp/test_pam_foo
id -ru >> /tmp/test_pam_foo

残念ながら、0有効なIDと実際のIDを取得し続けます。

私は何を逃したことがありませんか?

代わりに、私は存在することを知っています。pam_script、対話しないでください。パムスクリプト

pam_scriptはデフォルトで現在のユーザーとして実行され、オプションで強制的にrootとしてrunas実行できます。しかし、私のディストリビューション(Ubuntu 12.04)にすでにパッケージされているpamライブラリの使用に優先順位を付けたいと思います。

ベストアンサー1

まあ、あなたは持つことができます/usr/local/bin/test_pam_foo.sh

PAM_USER環境変数にあるとおりにユーザーを変更します。

pam_execユーザーが環境に持つ可能性のある潜在的な制御に関するマニュアルページの注意事項を参照してください(これを使用するサービスsuによって異なります)。したがって、スクリプトを使用するのはおそらく良い考えではありません(他の問題のある変数を変更しても、$PATHbashスクリプトのSHELLOPTSやBASH_ENVなど何もできない変数があるでしょう)。

スクリプトを呼び出す前に、ラッパーを使用してユーザーを変更することをお勧めします。

おすすめ記事