问题: 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