我正在尝试授予 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 可能值得研究。