我想用脚本执行bash命令。如果我响应命令,我会得到正确的响应。但如果我从浏览器执行它,它就不起作用。如果我回显命令ls
,它将被执行并显示。我已授予所有权限。如果我在终端中编写命令,它就会工作。
<?php
$banlista = $_POST['banlista'];
$ip = $_POST['ip'];
$command = "fail2ban-client set $banlista banip $ip";
$sporocilo = shell_exec("$command");
?>
最好在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和一个有权运行命令。