授予 php sudo 访问权限

授予 php sudo 访问权限

我正在尝试授予 php sudo 访问权限(用于自动共享挂载)。我成功地在我的一个系统上授予了 php sudo 访问权限,方法是将 daemond 添加到 sudo 列表中

su --login -c 'visudo'

因此现在它包含如下守护进程:

daemon  ALL=(ALL)  NOPASSWD: ALL

但是当我尝试运行一个简单的 php 脚本时:

<?php
echo "\nfirst: ";
echo shell_exec("whoami");
echo "\nsecond: ";
echo shell_exec("sudo ls");
?>

我得到结果:

first: daemon
second:

也就是说,每当我在命令中使用 shell_exec 和 sudo 时,都不会返回任何结果或提示。我该如何授予 php sudo 访问权限。

答案1

检查你的网络服务器错误日志...我敢打赌你会收到如下错误:

# tail -1 /var/log/httpd/error_log
sudo: sorry, you must have a tty to run sudo

如果是这种情况,请尝试修改您的 sudoers 文件并更改/删除 requiretty 行:

# grep requiretty /etc/sudoers
Defaults    requiretty

另一方面,如果您只是想自动挂载和共享某些东西,autofs/automount 可能值得研究。

相关内容