2016-10-13 10 views
0

私はApache2 Webサーバーを実行するためにUbuntuサーバー12.04を使用しています。Apache2サーバーは特定のユーザーとしてスクリプトを実行します

私はいくつかのウェブページをホスティングしていますが、ほとんどがうまくいきます。

1ページは、主に働くCGIスクリプト実行されている(私はApacheがうまくhtmlコードを建物の外作業のpythonコードを持っているが。)

しかし、私は、ホームオートメーションプログラム(heyu)を呼び出していますし、それが戻っています私のユーザーアカウントでそれを実行すると、別の答えが表示されます。

は、私ができる方法特定のユーザーとしての私のPythonスクリプトから...

1コールheyuプログラム、(私が)があり、単独のPythonコードの残りの部分とCGIコードを残しますか?

2、全体としてcgiコードを実行するようにapache2を設定しますか?他のページはすべて変更しないでください。おそらく、sites_available部分を使用しています。

3、少なくともどのユーザーがcgiコードを実行しているかを判断するため、おそらく私はheyuをそのユーザーとOKにすることができます。

ありがとうございました。

+0

#3の場合は、 "from getpass import getuser''を使用できるはずです – Shadow

+0

ありがとうございました。私は自分のスクリプトがユーザーのwwwデータを使用していると判断できました。今私のスクリプトからheyuへの呼び出しを私を使って実行するように働くこと。 –

+0

それを答えとして追加します。それがあなたを助けていると感じたら、それを正しいものとして自由に記入してください。 – Shadow

答えて

0

suEXECを使うことができるようです。

Apacheモジュールは、実際には使用したくないため、デフォルトではインストールされません。これは、apt-getスキームを使用してインストールできます。

しかし、私は私の問題に本当の答えを見つけました、heyuはシリアルポートを使って作業しています。私はダイヤルアウトグループにwww-dataを追加して再起動する必要がありました。

これは、私のコードを私のように実行する必要性を回避しました(以前私はすでにダイヤルアウトグループに私を追加していました)。

ありがとうございました。

0

あなたがpythonを使っているのを見て、次のようにpythonスクリプトを実行しているユーザーを抽出することができます。

from getpass import getuser 
print getuser() 

ページをヒットすると、スクリプトが走ったというユーザ名を取得します - あなたはそこからそれに応じて、その特定のユーザーの権限を調整することができます。

関連する問題