【问题标题】:How to make PHP execute Python3 script as root?如何让 PHP 以 root 身份执行 Python3 脚本?
【发布时间】:2020-06-17 08:40:46
【问题描述】:

我希望 PHP 执行 Python3 脚本。 我已经完成了

$command = escapeshellcmd('pathtofile.py');
$output = shell_exec($command);
echo $output;

但是每当脚本运行时,我都会收到错误:Permission Denied

我正在运行一个 Web 服务器(Ubuntu 18.04 上的 Apache2),而 VPS 只有一个用户 root。

我也做了chmod +x path.py 并在 scipt 中添加了 shebang 行。

基本上,脚本在用户成功注册时运行。

【问题讨论】:

    标签: php python-3.x scripting root


    【解决方案1】:

    您必须在 sudoers 文件中添加 apache 用户,例如: www-data ALL=(ALL:ALL) NOPASSWD:ALL 然后你可以像这样执行脚本: 'sudo pathtofile.py'

    或者您可以使用已编译的包装器。 编写执行脚本的 C 程序,而不是编译它。比设置粘性位: chown root:root 包装器 chmod a+rs 包装器

    在根组中包含 www-data。 现在可以从你的 php 脚本执行 wrapper,并且 wrapper 将以 root 身份执行 python 脚本。

    【讨论】:

    • 我必须在哪里添加以上内容?
    • sudo echo 'www-data ALL=(ALL:ALL) NOPASSWD:ALL' >>/etc/sudoers 比执行为“sudo pathtofile.py”
    猜你喜欢
    • 2019-05-19
    • 2022-01-17
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-30
    • 2014-04-29
    • 1970-01-01
    相关资源
    最近更新 更多