从 uwsgi 调用子进程 sudo
Call subprocess sudo from uwsgi
我正在 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'])
谢谢,对不起我的英语。
你能在你的 sudo 之前做 subprocess.call('/usr/bin/id')
看看你是否将它作为 www-data 执行吗?
我在我的服务器上测试了这段代码,它可能是一个不错的选择:
subprocess.call("sudo" + " /sbin/iptables -L -n", shell=True)
我正在 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'])
谢谢,对不起我的英语。
你能在你的 sudo 之前做 subprocess.call('/usr/bin/id')
看看你是否将它作为 www-data 执行吗?
我在我的服务器上测试了这段代码,它可能是一个不错的选择:
subprocess.call("sudo" + " /sbin/iptables -L -n", shell=True)