Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';使用php执行ifconfig_Php_Apache_Exec_Ifconfig - Fatal编程技术网

Can';使用php执行ifconfig

Can';使用php执行ifconfig,php,apache,exec,ifconfig,Php,Apache,Exec,Ifconfig,我无法在apache上用PHP中的exec()执行ifconfig。我可以执行所有类型的命令,包括ip地址列表,但那个命令很糟糕,所以我真的需要能够执行ifconfig 我已经阅读了其他帖子,并确保disable_函数为=“”[blank],但仍然没有运气(我重新启动了apache)。这感觉像是某种权限问题,因为所有其他命令都可以正常工作 在第一个文件中,我只执行exec,然后根据需要清理结果,我很确定这不是问题所在,因为它在其他命令中运行良好 第一档 function execute($com

我无法在apache上用PHP中的exec()执行ifconfig。我可以执行所有类型的命令,包括ip地址列表,但那个命令很糟糕,所以我真的需要能够执行ifconfig

我已经阅读了其他帖子,并确保disable_函数为=“”[blank],但仍然没有运气(我重新启动了apache)。这感觉像是某种权限问题,因为所有其他命令都可以正常工作

在第一个文件中,我只执行exec,然后根据需要清理结果,我很确定这不是问题所在,因为它在其他命令中运行良好

第一档

function execute($command){
  exec($command, $output);

  $output_array;                                    // each row contains a array representing all elements in a output row
  for ($i = 0; $i < sizeof($output); $i++){
    $tmp_array = explode(" ",$output[$i]);      
    $output_array[$i] = $tmp_array;
}
// clear the array from all ""
  $clean_array;                             
  for ($i = 0; $i < sizeof($output_array); $i++){
    $tmp;
    $index = 0;
    for ($j = 0; $j < sizeof($output_array[$i]); $j++){
        if (strlen($output_array[$i][$j]) > 0){
            $tmp[$index++] = $output_array[$i][$j];
        }
    }
    $clean_array[$i] = $tmp;
  }
  return $clean_array;
函数执行($command){
exec($command,$output);
$output\u array;//每行包含一个表示输出行中所有元素的数组
对于($i=0;$i0){
$tmp[$index++]=$output_数组[$i][$j];
}
}
$clean_数组[$i]=$tmp;
}
返回$clean_数组;
第二档

include "../app_includes/application_functions.php";
$command = "ifconfig";
//$command = "ip addr list";
$arr = execute($command);
// print the result
for ($i = 0; $i < sizeof($arr); $i++){
    for ($j = 0; $j < sizeof($arr[$i]); $j++){
        echo $arr[$i][$j]." ";
    }
    echo "<br>";
}
include“./app\u includes/application\u functions.php”;
$command=“ifconfig”;
//$command=“ip地址列表”;
$arr=执行($command);
//打印结果
对于($i=0;$i”;
}
已解决:
通过执行“/sbin/ifconfig”而不是仅执行ifconfig,问题得以解决。普通用户无法在某些Gnu/Linux上使用ifconfig,但可以使用/sbin/ifconfig。因此,请尝试此方法

<?php
$command="/sbin/ifconfig";
exec($command, $output);
?>

普通用户不能在某些Gnu/Linux上使用ifconfig,但可以使用/sbin/ifconfig

<?php
$command="/sbin/ifconfig";
exec($command, $output);
?>

如果您没有在php中指定ifconfig,我不确定您是否可以在exec中调用它。I我应该如何在那里添加它,即我应该写什么?您是否尝试过在命令行中执行:su-u www-data-c/sbin/ifconfig?结果如何?@gafreax永远不会这样做!它可能会造成安全漏洞!您不需要这样做this@ThibaultM为什么是安全漏洞?我知道在php脚本中不要这么说!不管怎样,有两件事:第一,它与执行命令的php完全相同,第二,如果你能执行“su”或“sudo”通过php上的exec调用,这是一个很大的安全漏洞!但与我所说的不同。如果您没有在php中指定它,我不确定您是否可以在exec中调用ifconfig。我如何将它添加到那里,即我应该写什么?您是否尝试过在命令行中执行:su-u www-data-c/sbin/ifconfig?结果如何?@gafreax永远不会这样做!它可能会创建一个安全漏洞!你不需要这样做this@ThibaultM为什么会有安全漏洞?我并不是说要在php脚本中这样做!总之有两件事:第一,它与执行命令的php完全相同,第二,如果你可以通过php上的exec调用来执行“su”或“sudo”,这是一个很大的安全漏洞!但与我所说的不同。