web-dev-qa-db-ja.com

Apacheで認証済みユーザーとしてサーバー側スクリプトを実行します-可能ですか?

私は、認証されたユーザーから多数のパラメーター(ドロップダウンボックスなど)を取得し、ファイルを作成し、そのファイルをstdin経由でWebサーバー上のプログラムに配信するWebアプリを開発しています。

サーバー側プログラムにはいくつかの制限があるため、Apacheで汎用のApacheユーザーとしてではなく、以前に認証されたユーザーとしてそのサーバー側プログラムを実行したいと思います。

したがって、たとえば、ユーザーfooがログインし(バックエンドでmod_authz_ldapを使用)、フォームに入力する場合、フォームはサーバー上でユーザーApacheではなくユーザーfooとしてコマンドを実行する必要があります。

これは可能ですか?

1
Josh

通常、CGIスクリプトはWebサーバーのユーザーとして実行されます。しかし、多くの(ほとんどの?)Webホストは suEXEC を使用して、CGIスクリプトを別のユーザーとして実行します。

ただし、suEXECは通常、vhostまたはプログラムが存在するユーザーディレクトリに基づいて、異なるユーザーとしてスクリプト/プログラムを実行するために使用されます。プログラムを実行するユーザーを動的に選択できるかどうかはわかりません。

しかし、あなたができることは、異なる仮想ホストまたはユーザーディレクトリにある各プログラムの異なるコピーを持ち、認証プロセスを使用して実行するプログラムのコピーを選択し、同じことを効果的に達成することです。

1
Lèse majesté

パスワードなしでスクリプトを実行する特定のユーザーアクセスを与えるために、sudoersファイルにエントリを作成しました。スクリプトを実行しているユーザーを動的に設定するのは簡単だとは思いません。 sudoersファイルを編集して、別のエディターではなくvisudoを使用する場合は注意してください。破損して、再起動してルートシェルにドロップして行を削除できない場合は、suを実行してください。

0
Anagio