2016-04-06 10 views
0

私はsudoの文を、Pythonからuwsgiで実行しています。私はアカウント(www-data)にsudoのパスワードを必要としないように設定しましたが、動作しません。サブプロセスsudoをuwsgiから呼び出す

私はシェルから実行した場合、それは希望のアカウントで正しく動作します。

[email protected] sudo iptables -L -n 

が、私のスクリプトとuwsgiから、それはパスワードの入力を求められます。 sudoers

私が持っている:

www-data ALL=(ALL) NOPASSWD: /sbin/iptables 

と私のPythonスクリプトで:

subprocess.call(['sudo', '/sbin/iptables -L -n']) 

おかげで、私の英語のため申し訳ありませんが。

答えて

0

私はそれは良い代替することができ、私のサーバー上でこのコードをテストした:

subprocess.call("sudo" + " /sbin/iptables -L -n", shell=True) 

は、はい、私はすでにサブプロセスの呼び出しとwhoamiは、そのWWW-データとそれをチェックhttps://docs.python.org/2/library/subprocess.html

+0

ありがとうneb0、それは動作します。 – Rober

0

sudoの前にsubprocess.call('/usr/bin/id')を実行してwww-dataとして実行しているかどうか確認できますか?

+0

を参照してください。回答と編集の司会者に感謝します。 – Rober

関連する問題