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

2015 年 8 月 5 日
 just1
命令行内可以执行,因此判断为权限问题。新手,勿喷。感谢。
8082 次点击
所在节点    PHP
19 条回复
imlewc
2015 年 8 月 5 日
sudo 啊
learnshare
2015 年 8 月 5 日
给 PHP 文件足够的权限
582033
2015 年 8 月 5 日
fastcgi权限
x86
2015 年 8 月 5 日
没权限给呀
582033
2015 年 8 月 5 日
楼主说的是php中执行shell,不是shell里执行php脚本
ss098
2015 年 8 月 5 日
你需要给 Web 服务器的用户执行系统命令的权限,如果是 nginx 的话用户通常是 nginx。
realpg
2015 年 8 月 5 日
你确认你们PM和leader都允许你这么搞么……给webserver用户系统的其他权限?
just1
2015 年 8 月 5 日
@realpg 那么该怎么操作呢。。如果不赋予权限。似乎没办法。
caola
2015 年 8 月 5 日
如果对安全要求不高,可以用 root 来运行 web 服务器和php
oott123
2015 年 8 月 5 日
Apache & mod-php 检查 user / group 这两个配置
nginx & php-fpm 检查 fpm 的 user 配置
不管什么环境检查 php.ini 的 disable-functions
还有提问请至少贴出环境和日志,谢谢
just1
2015 年 8 月 5 日
算了,我直接用root来运行服务器吧T_T懒得弄了
codercai
2015 年 8 月 5 日
@just1 好粗暴啊
DennyDai
2015 年 8 月 6 日
关安全模式,php.ini解禁函数
just1
2015 年 8 月 6 日
@DennyDai 我的是php5.6,已废除安全模式。函数已解禁,在命令行下可以执行,因此判断是权限不足。但是新的问题来了,,为什么把www用户改成root权限后,访问我的这个页面,502错误。
<?php
passthru('service tor restart');
passthru('python ./1.py');
?>
nginx
DennyDai
2015 年 8 月 6 日
@just1 777?
just1
2015 年 8 月 6 日
最新状态:
<?php
echo shell_exec('sudo service tor restart');
echo shell_exec('python ./1.py');
?>
py脚本正常执行,上面的一句服务重启怎么都执行不了。已经将www的sudo设置为无密码。该怎么办?
just1
2015 年 8 月 6 日
我还丧心病狂地把www改成了可登录,亲自到命令行下测试命令可用性。sudo service tor restart 的确可以直接执行,不需要输入密码。
just1
2015 年 8 月 8 日
发现了问题所在,linux默认需要一个终端(tty)才能执行sudo。
解决办法:visudo
找到Defaults requiretty,注释掉即可
huigeer
2015 年 8 月 9 日
@jsut1, 最好是单独配一个可以执行shell的php环境, 隔离和web交互的php

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

https://v2ex.ih06.com/t/211047

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

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

© 2021 V2EX