我想用脚本执行bash命令。如果我回显命令,我会得到正确的响应。但是如果我从浏览器执行它,它就不能工作。如果我回显命令ls,它将被执行并显示。我已授予所有权限。如果我在终端中写命令,它就能工作。
<?php
$banlista = $_POST['banlista'];
$ip = $_POST['ip'];
$command = "fail2ban-client set $banlista banip $ip";
$sporocilo = shell_exec("$command");
?>发布于 2016-03-24 08:35:27
最好在php代码中运行该命令。您可以从实际命令中获得响应,并验证它是否正常工作。
如果你的代码是这样的
<?php
$banlista = $_POST['banlista'];
$ip = $_POST['ip'];
$command = "fail2ban-client set $banlista banip $ip";
$sporocilo = shell_exec("$command");
?>您可以尝试添加以下内容:
<?php
exec("sudo user /usr/bin/fail2ban-client set $banlista banip $ip", $output, $return);
echo "Failtoban client returned $return, and output:\n";
var_dump($output);
?>您可能缺少一个sudo和一个有权从浏览器运行该命令的用户。
https://stackoverflow.com/questions/36167586
复制相似问题