【发布时间】:2016-06-07 18:23:28
【问题描述】:
我在/etc/init.d/ 中有用于控制游戏服务器的脚本,我想构建一个简单的 Web 界面来调用这些脚本。我的 sudoers 文件包含类似
www-data ALL=(ALL) NOPASSWD: /etc/init.d/starbound start stop
当我在 PHP 中执行 sudo /etc/init.d/starbound start 时,什么也没有发生。我错过了什么吗?尝试访问不允许我的 PHP 用户访问的路径通常至少会给我适当的警告。
【问题讨论】:
-
尝试使用
sudo可执行文件的绝对路径。 -
^ 如果您不确定 sudo 的完整路径,可以使用
which sudo找到它。 -
不,没用。我还检查了所需的文件是否可以访问,
is_executable("/usr/bin/sudo");说true和is_executable("/etc/init.d/starbound"); -
应该查看 auth.log,内容为:
Jun 7 20:33:11 smares sudo: pam_unix(sudo:auth): conversation failed Jun 7 20:33:11 smares sudo: pam_unix(sudo:auth): auth could not identify password for [www-data] Jun 7 20:33:11 smares sudo: www-data : command not allowed ; TTY=unknown ; PWD=/var/www/smares.de/ajax ; USER=root ; COMMAND=/etc/init.d/starbound start