PHP shell_exec 调用不了 iptables

2019-04-20 16:57:37 +08:00
 demos
<?php
echo shell_exec("iptables -nvL");
echo 1234;
?>

RT 这个简单的代码,但是没有输出,把 iptables -nvL 换成 ls 等其它命令就可以。
其大佬指教一下,谢谢
4076 次点击
所在节点    PHP
11 条回复
gam2046
2019-04-20 17:02:54 +08:00
开局一把唆,问题全靠猜。

我猜是权限问题。
zhs227
2019-04-20 17:21:44 +08:00
估计是权限问题。一般如果是网页方式运行,如 fastcgi 或 fpm 或 apache mod,都是 www 用户,这一用户是没有权限执行 iptables 的。用 shell 方式执行可破。比如 sudo /usr/local/php/bin/php test.php
demos
2019-04-20 17:23:41 +08:00
@gam2046 谢谢,搜索了下很有可能是权限问题
demos
2019-04-20 17:24:45 +08:00
@zhs227 感谢,环境是 centos、nginx、php-fpm,正在搜索解决方案
moult
2019-04-20 17:27:20 +08:00
这个函数没有返回退出马的,你需要换一个函数获取退出马就知道原因了。
defunct9
2019-04-20 17:29:47 +08:00
开 ssh,让我上去看看
jamblues
2019-04-20 17:41:00 +08:00
/sbin/iptables
demos
2019-04-20 17:51:33 +08:00
确实是权限问题,已解决,感谢楼上各位大佬
chotow
2019-04-20 19:17:24 +08:00
@demos #8 每次看到这种楼主最后说已解决的帖子,我都很想知道楼主到底怎么解决的,为什么不能顺手贴一下方案 🌚 ……
yikuo
2019-04-20 20:22:52 +08:00
@chotow 确实,特别是自己碰到了,但找不到解决方法的时候
wd
2019-04-20 20:24:43 +08:00
@chotow #9 解决方法无非是把 web 用 root 跑 或者想办法让 命令可以用 www 用户跑,都有安全隐患

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/557071

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX