【发布时间】:2019-03-10 00:37:45
【问题描述】:
我有一个 generate.php 页面
<?php
exec("./script $ip");
?>
我已验证变量 $ip 是否正确地从 URL 中提取。当它重定向到此页面时,它不会运行脚本。我还尝试验证该脚本是否适用于 apache 用户并且确实有效。
su -s /bin/sh apache -c "./script 1.1.1.1"
从我的 index.html 页面设置 IP 的代码是这样的
<form action="generate.php">
<input type="text" name="ip" />
<input type="submit" />
</form>
当我在框中输入 IP 并点击提交时,它确实将我带到http://example.com/generate.php?ip=1.1.1.1
我调用 shell 脚本的方式有问题吗?任何输入将不胜感激。
感谢大家的投入,原来只是selinux。禁用 selinux 解决了这个问题。由于这不是网络连接系统,因此禁用 selinux 不是问题。
【问题讨论】:
-
给它 /full/path/to/the/script 然后再试一次。
-
脚本是否可执行? (您只测试了 /bin/sh 是否可以以 apache 用户身份处理脚本 - 这不是一回事)。网络服务器是否与您的测试在同一个根文件系统中运行? SELinux 或 Apparmour 是否在主机上运行?