从apache中的python脚本关闭计算机

时间:2013-11-19 08:29:08

标签: python linux apache2 raspbian

我有一个无头的Raspberry Pi,我想让一个简单的方法让我的孩子关掉电源。我在apache web服务器中尝试了以下脚本:

import os
sss = os.popen('echo password | sudo -S shutdown -hP now')
print sss.read()

但没有任何反应。

然后我尝试了:

from subprocess import Popen, PIPE, STDOUT
p = Popen('echo password | sudo -S shutdown -hP now', shell=True, stdOUT=PIPE, stderr=STDOUT)
print p.stdout.read()

此外,没有输出任何内容,也似乎没有工作。

如何从网页关闭?

1 个答案:

答案 0 :(得分:1)

出于安全原因,Apache用户无法运行sudo命令。

通常这是一个几乎必不可少的规则来保护您免受攻击,但是对于Raspberry PI安装,您可能没有这个问题,所以您只需将Apache用户添加到sudoers(或者更好的是,uso {{3}编辑该文件。)

还有别的吗?是的,你可以简单地向Apache用户添加关闭权限,按照visudo。简而言之,您必须使用以下内容更改/etc/sudoers

%groupName ALL= NOPASSWD: /sbin/shutdown