【问题标题】:Shutting down computer from a python script in apache从 apache 中的 python 脚本关闭计算机
【发布时间】:2013-11-19 08:29:07
【问题描述】:

我有一个无头的 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()

此外,没有任何输出,似乎没有完成任何工作。

如何从网页关闭?

【问题讨论】:

    标签: python linux apache2 raspbian


    【解决方案1】:

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

    通常这是一条几乎强制性的规则来保护您免受攻击,但对于 Raspberry PI 安装,您可能没有此问题,因此您只需将 Apache 用户添加到 sudoers(或者,更好的是使用 visudo 来编辑它文件)。

    还有什么?是的,您可以简单地向 Apache 用户添加关闭权限,关注 this tutorial。简而言之,您必须将/etc/sudoers 更改为:

    %groupName ALL= NOPASSWD: /sbin/shutdown
    

    【讨论】:

    • 谢谢。如何找出运行 Apache 的帐户?
    • @OldGeezer 您可以从 phyton 调用 getuser,但它可能在默认帐户(www-dataapache)上运行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2010-09-06
    相关资源
    最近更新 更多