【问题标题】:PHP shell_exec doesn't return anything when using sudo. Sudoers edited properly?使用 sudo 时 PHP shell_exec 不返回任何内容。 Sudoers 编辑正确吗?
【发布时间】:2016-05-19 01:16:23
【问题描述】:

我有一个称为浏览器的页面,最终需要以 root 身份运行一个命令。我非常清楚从浏览器运行 shell_exec 命令的安全隐患,因此我已将“apache all no password”的 sudoers 文件锁定到一个命令:

apache  ALL = (ALL) NOPASSWD: /usr/sbin/rndc

我已经对我的 PHP 页面进行了硬编码,因此命令的任何部分都不是从用户可访问的输入中运行的。

这个过程只是通过发出来刷新 Bind9(命名)的配置

shell_exec("/usr/sbin/sudo /usr/sbin/rndc reload");

但是,它似乎没有运行,但是当我将 /bin/bash 设置为 apache 的默认 shell 并作为 apache 时,当我在 apache shell 中尝试它时,这个进程就会运行:

[root@localhost zones]# su - apache
-bash-4.2$ /usr/bin/sudo /usr/sbin/rndc reload
server reload successful

我的整个 PHP 代码:

<?php
error_reporting(E_ALL); 
$result = shell_exec("/usr/bin/sudo /usr/sbin/rndc reload");
print_r($result);
?>

我没有收到任何回复。有任何想法吗? SELinux 现在设置为 permissive。

【问题讨论】:

    标签: php linux shell sudo


    【解决方案1】:

    原来是我的 sudo 文件中的 require_ttl 参数。 Apache 在 /var/log/httpd/error_log 中出错了。

    那是那些看过的人:)

    【讨论】:

      猜你喜欢
      • 2011-11-24
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 2021-11-22
      • 2014-02-18
      相关资源
      最近更新 更多