gpt4 book ai didi

使用 sudo 时,PHP shell_exec 不返回任何内容。 Sudoers 编辑正确吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:24:40 25 4
gpt4 key购买 nike

我有一个名为 form a browser 的页面,最后需要以 root 身份运行一个命令。我非常清楚从浏览器运行 shell_exec 命令的安全隐患,所以我将我的 sudoers 文件锁定为一个命令的“apache all no password”:

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 现在设置为宽容。

最佳答案

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

那些看过的人:)

关于使用 sudo 时,PHP shell_exec 不返回任何内容。 Sudoers 编辑正确吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37312426/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com