通过PHP以root身份执行命令将使您自己暴露于各种恶意黑客攻击之下。
请查看“sudo”文档。
您应该能够将所有所需的命令设置为可"sudo"脚本。编写具有有限功能的特定脚本比公开底层的特权命令要好得多。
例如:
exec ('sudo getCurrentUser.sh')
www-data
)添加到sudo组中,以便运行,如果还未分配,请注意。
然后,在您的php文件中:$exec = "echo your_passwd | /usr/bin/sudo -S your command";
exec($exec,$out,$rcode);
如果您在路径方面遇到问题,请使用
"bash -lc 'echo your_passwd | /usr/bin/sudo -S your command'"
编辑sudoers文件
sudo vi /etc/sudoers
将这行代码放置在
www-data ALL=(ALL) NOPASSWD: ALL
www-data是Linux中PHP的默认用户(如有必要,请更换)。
用法:
$output = shell_exec('sudo XXXX');