首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
demos
V2EX  ›  PHP

PHP shell_exec 调用不了 iptables

  •  
  •   demos · 277 天前 · 2172 次点击
    这是一个创建于 277 天前的主题,其中的信息可能已经有所发展或是发生改变。
    <?php
    echo shell_exec("iptables -nvL");
    echo 1234;
    ?>

    RT 这个简单的代码,但是没有输出,把 iptables -nvL 换成 ls 等其它命令就可以。
    其大佬指教一下,谢谢
    11 回复  |  直到 2019-04-20 20:24:43 +08:00
    gam2046
        1
    gam2046   277 天前
    开局一把唆,问题全靠猜。

    我猜是权限问题。
    zhs227
        2
    zhs227   277 天前
    估计是权限问题。一般如果是网页方式运行,如 fastcgi 或 fpm 或 apache mod,都是 www 用户,这一用户是没有权限执行 iptables 的。用 shell 方式执行可破。比如 sudo /usr/local/php/bin/php test.php
    demos
        3
    demos   277 天前
    @gam2046 谢谢,搜索了下很有可能是权限问题
    demos
        4
    demos   277 天前
    @zhs227 感谢,环境是 centos、nginx、php-fpm,正在搜索解决方案
    moult
        5
    moult   277 天前 via iPhone
    这个函数没有返回退出马的,你需要换一个函数获取退出马就知道原因了。
    defunct9
        6
    defunct9   277 天前 via iPhone   ♥ 1
    开 ssh,让我上去看看
    jamblues
        7
    jamblues   277 天前 via iPhone
    /sbin/iptables
    demos
        8
    demos   277 天前
    确实是权限问题,已解决,感谢楼上各位大佬
    chotow
        9
    chotow   277 天前   ♥ 5
    @demos #8 每次看到这种楼主最后说已解决的帖子,我都很想知道楼主到底怎么解决的,为什么不能顺手贴一下方案 🌚 ……
    yikuo
        10
    yikuo   277 天前 via Android
    @chotow 确实,特别是自己碰到了,但找不到解决方法的时候
    wd
        11
    wd   277 天前 via iPhone
    @chotow #9 解决方法无非是把 web 用 root 跑 或者想办法让 命令可以用 www 用户跑,都有安全隐患
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1230 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 17:13 · PVG 01:13 · LAX 09:13 · JFK 12:13
    ♥ Do have faith in what you're doing.