从uwsgi调用subprocess sudo

时间:2016-04-06 12:59:27

标签: python linux bash uwsgi sudo

我正在通过uwsgi从python执行sudo语句。我将帐户(www-data)配置为不需要sudo的密码,但它不起作用。

如果我从shell运行,它可以正常使用所需的帐户:

www-data@srv sudo iptables -L -n

但是从我的脚本和uwsgi,它会提示输入密码。

sudoers我有:

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

并在我的python脚本中:

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

谢谢,对不起我的英语。

2 个答案:

答案 0 :(得分:0)

你可以在你的sudo之前tvp input parameter查看你是否将其作为www-data执行?

答案 1 :(得分:0)

我在我的服务器上测试了这段代码,它可能是一个不错的选择:

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

请参阅https://docs.python.org/2/library/subprocess.html