【发布时间】:2014-05-23 12:17:50
【问题描述】:
我正在尝试以 root 用户身份运行脚本。这是我的代码
echo shell_exec("sudo bash.sh 2>&1");
报错
sudo: no tty present and no askpass program specified
www-data is not in the sudoers file. This incident will be reported.
我也遵循了these 方法,但最终出现no permission 错误
【问题讨论】:
-
sudo 是交互式的,并且您从脚本运行它,这就是它失败的原因,脚本无法提供密码。您是否可以使用 sudo 运行 PHP,在这种情况下脚本仍然具有 root 权限?例如
sudo php script.php -
其实这取决于系统是如何配置的。您可以在不询问密码的情况下使 sudo 工作
-
在 /etc/sudoers 中发布您的条目
-
@LorenzoMarcon 是的,你是对的,现在只是阅读手册页。您可以使用 -S 选项(我 认为)通过标准输入传递密码,因此您可以在单行中执行此操作。看看手册:sudo.ws/sudo/sudo.man.html
-
尽管实际这样做的安全隐患是巨大的。请不要,至少在生产环境中。