【问题标题】:running shell commands in php ajax在 php ajax 中运行 shell 命令
【发布时间】:2017-10-12 12:40:22
【问题描述】:

作为一个新手:我正在尝试开发一个运行 shell 命令并在网页上显示输出的 php 应用程序。

html文件:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $("button").click(function() {
        $.get("snmp-cmd.php?code=myFunction", function(data, status) {
            alert("Data: " + data + "\nStatus: " + status);
        });
    });
});
</script>
</head>
<body>
    <button>Execute Command</button>
</body>
</html>

和php文件:

<?php


$command1 = "snmpget -v 3 -u username -a SHA -A mypasswd -x DES -X mypasswd -l authPriv -IR 192.168.1.1:161 eNodeBopStatus.0";
$command = "sudo whoami";
$output1 = shell_exec($command);
$output = exec($command);
echo $output;
?>

问题是:如果我尝试 $command = "ls -ltr",它可以工作,但如果我尝试 "whoami" 或 snmp 命令,则不会显示警报框中的数据。

注意:如果我在控制台上运行 php 文件,我会看到“whoami”和 snmp 命令的输出。我猜,只是没有显示在ajax部分。 我在 chrome 中调试:网络选项卡 > 时间延迟显示:待处理

请帮忙。

【问题讨论】:

  • 与您的whoami 我认为由于sudo,它正在等待处理。尝试不使用 sudo,它应该 - 也许 - 工作
  • @atester 你试过 sudo echo whoami
  • 您的 error_log 说明了什么?有什么错误吗?
  • @sheplu 我也试过不使用 sudo 但它不起作用
  • @shashi "sudo echo whoami" 也会在“数据”中显示任何内容

标签: php ajax shell


【解决方案1】:

您是否查看了所有要通过 PHP 执行的命令?例如。 www-data ALL=(ALL) NOPASSWD: /usr/bin/whoami

【讨论】:

    猜你喜欢
    • 2022-11-28
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 2014-06-26
    相关资源
    最近更新 更多