PHP 运行exec() 或者 shell_exec()
2019-09-09
83
0
一、查看启动你php的进程的用户是谁。
可以通过在命令行执行:·ps -ef | grep php·来看。或者在php中执行 echo exec(‘whoami’) 来查看。centos下默认会是nobody。 nobody默认没有任何权限。
此时先自己添加一个用户和组。
/usr/sbin/groupadd xxxx
/usr/sbin/useradd -g xxxx -s /bin/bash xxxx
加完用户后、vim /etc/passwd 里面就可以看到你添加的用户了。
假如已经有用户了,比如www,我们直接使用www用户和组。
二、修改php启动用户为您刚添加的用户
找到你得php安装的地方的·php-fpm.conf
。
如本测试机目录/usr/local/php/etc/php-fpm.conf
打开配置文件、编辑里面的 user = xxxx; group = xxxx; (xxxx为您刚才添加的用户)
重启php-fpm
service php-fpm restart
重复上面查看php启动进程的用户、应该已经变了。
三、添加刚才的用户xxxx到sudoers里面
修改/etc/sudoers
的内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
xxxx ALL=(ALL) ALL //新添加这一行
%xxxx ALL=(ALL) NOPASSWD: ALL //设置xxxx组下面的用户使用sudo不需要输入密码