我正在尝试在本地Debian服务器上执行命令。代码如下;
if (isset($INPUTdifference)) {
$counter = count($INPUTdifference);
for ($i = 0; $i < $counter; $i++) {
$pkts = $INPUTdifference[$i]["pkts"];
$bytes = $INPUTdifference[$i]["bytes"];
$target = $INPUTdifference[$i]["target"]; // = -j
$prot = $INPUTdifference[$i]["prot"]; // = -p
$opt = $INPUTdifference[$i]["opt"];
$in = $INPUTdifference[$i]["in"]; // = -i
$out = $INPUTdifference[$i]["out"]; // = -o
$source = $INPUTdifference[$i]["source"]; // = -s
$destination = $INPUTdifference[$i]["destination"]; // -d
//Filter results
$badOpt;
if (strcmp($opt, $badOpt)) {
$opt = "all";
return $opt;
}
// Execute command with parameters acquired from array
exec("sudo /sbin/iptables -A INPUT -j $target -p $prot -i $in -o $out -s $source -d $destination ");
echo 'complete yo';
}
}
如您所见,我正在尝试将数组中的值用于我的exec
调用。这些值都经过测试并正确解析。
我尝试执行命令,但它没有在服务器上给我任何反馈/结果。起初它是在讨论我怎么没有正确的参数,但我解决了这个问题。所以它 - 在服务器上执行。我想,这会缩小到语法本身......我在这里错过了一些东西吗?
答案 0 :(得分:0)
您可能希望直接/ path / to / sudo而不仅仅是sudo。 exec不喜欢有时自己找出路径。