demos
V2EX  ›  PHP

PHP shell_exec 调用不了 iptables

  •  
  •   demos · Apr 20, 2019 · 5035 views
    This topic created in 2580 days ago, the information mentioned may be changed or developed.
    <?php
    echo shell_exec("iptables -nvL");
    echo 1234;
    ?>

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

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