php 执行 shell 命令,权限不足,怎么办。 - V2EX
just1
V2EX    PHP

php 执行 shell 命令,权限不足,怎么办。

  •  
  •   just1 Aug 5, 2015 via Android 7906 views
    This topic created in 3935 days ago, the information mentioned may be changed or developed.
    命令行内可以执行,因此判断为权限问题。新手,勿喷。感谢。
    19 replies    2015-08-09 11:49:41 +08:00
    imlewc
        1
    imlewc  
       Aug 5, 2015
    sudo 啊
    learnshare
        2
    learnshare  
       Aug 5, 2015
    给 PHP 文件足够的权限
    582033
        3
    582033  
       Aug 5, 2015 via Android
    fastcgi权限
    x86
        4
    x86  
       Aug 5, 2015
    没权限给呀
    582033
        5
    582033  
       Aug 5, 2015 via Android
    楼主说的是php中执行shell,不是shell里执行php脚本
    ss098
        6
    ss098  
       Aug 5, 2015 via iPad
    你需要给 Web 服务器的用户执行系统命令的权限,如果是 nginx 的话用户通常是 nginx。
    realpg
        7
    realpg  
    PRO
       Aug 5, 2015
    你确认你们PM和leader都允许你这么搞么……给webserver用户系统的其他权限?
    just1
        8
    just1  
    OP
       Aug 5, 2015 via Android
    @realpg 那么该怎么操作呢。。如果不赋予权限。似乎没办法。
    caola
        9
    caola  
       Aug 5, 2015
    如果对安全要求不高,可以用 root 来运行 web 服务器和php
    oott123
        10
    oott123  
       Aug 5, 2015 via iPhone   1
    Apache & mod-php 检查 user / group 这两个配置
    nginx & php-fpm 检查 fpm 的 user 配置
    不管什么环境检查 php.ini 的 disable-functions
    还有提问请至少贴出环境和日志,谢谢
    just1
        11
    just1  
    OP
       Aug 5, 2015 via Android
    算了,我直接用root来运行服务器吧T_T懒得弄了
    codercai
        12
    codercai  
       Aug 5, 2015
    @just1 好粗暴啊
    DennyDai
        13
    DennyDai  
       Aug 6, 2015 via Android
    关安全模式,php.ini解禁函数
    just1
        14
    just1  
    OP
       Aug 6, 2015 via Android
    @DennyDai 我的是php5.6,已废除安全模式。函数已解禁,在命令行下可以执行,因此判断是权限不足。但是新的问题来了,,为什么把www用户改成root权限后,访问我的这个页面,502错误。
    <?php
    passthru('service tor restart');
    passthru('python ./1.py');
    ?>
    nginx
    DennyDai
        15
    DennyDai  
       Aug 6, 2015
    @just1 777?
    just1
        16
    just1  
    OP
       Aug 6, 2015 via Android
    最新状态:
    <?php
    echo shell_exec('sudo service tor restart');
    echo shell_exec('python ./1.py');
    ?>
    py脚本正常执行,上面的一句服务重启怎么都执行不了。已经将www的sudo设置为无密码。该怎么办?
    just1
        17
    just1  
    OP
       Aug 6, 2015 via Android
    我还丧心病狂地把www改成了可登录,亲自到命令行下测试命令可用性。sudo service tor restart 的确可以直接执行,不需要输入密码。
    just1
        18
    just1  
    OP
       Aug 8, 2015 via Android
    发现了问题所在,linux默认需要一个终端(tty)才能执行sudo。
    解决办法:visudo
    找到Defaults requiretty,注释掉即可
    huigeer
        19
    huigeer  
       Aug 9, 2015
    @jsut1, 最好是单独配一个可以执行shell的php环境, 隔离和web交互的php
    About     Help     Advertise     Blog     API     FAQ     Solana     5919 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 143ms UTC 02:58 PVG 10:58 LAX 19:58 JFK 22:58
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86