它可能更像是一个以bash为导向的问题,但它涉及安全问题。
所以我试图从我可以使用Php(和 shell_exec 函数)访问的远程计算机上下载二进制文件( nc ),我找了 wget 并在 / usr / ports / ftp / 存储库中找到它,并具有以下权限:
drwxr-xr-x 3 root wheel 512 Dec 27 2013 wget
所以,你可以看到每个人都应该能够执行这个。所以,我使用shell_exec执行了以下操作:
<?php $output = shell_exec("/usr/ports/ftp/wget"); echo "<pre>$output</pre>"; ?>
但是当我通过服务器执行此脚本时没有任何追加,这很奇怪,因为 shell_exec(ls&#34;); 有效(它可以看到它的标准输出)和&#34; LS &#34;二进制文件在 / bin 中作为exaclty相同的权利
有什么建议吗?
p.s:所有这些都发生在培训实验室当然
答案 0 :(得分:0)
这看起来像BSD机器 - / usr / ports / ftp / wget是一个目录(参见ls
输出模式中的d)。我怀疑,wget
实际上并未安装在该计算机上,而您正在尝试执行目录。
请尝试fetch
(/ usr / bin / fetch)。