问题: php在执行shell时使用的默认用户为nobody用户,因此引起命令无法执行返回结果为空的问题。
解决:转换为root或者相应的用户来执行命令
eg: shell_exec('sudo -u root -S your_command');
需要的配置:
a. 配置nobody用户的sudo权限,修改/etc/sudoers
chmod u+x /etc/sudoers
在root ALL=(ALL) ALL 下添加 nobody ALL=(ALL) ALL
chmod u-x /etc/sudoers
b. 修改sudoer默认需要tty的配置
在/etc/sudoers中注释掉 Defaults requiretty
本文介绍了当PHP尝试执行Shell命令但因默认使用nobody用户而导致权限不足的问题,并提供了通过配置sudo权限允许nobody用户执行命令的方法。
2万+

被折叠的 条评论
为什么被折叠?



