PHP:以root用户身份运行Shell脚本

时间:2014-05-23 12:17:50

标签: php bash shell

我正在尝试以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错误

1 个答案:

答案 0 :(得分:1)

您可能会遇到几个问题:

  • 运行php进程的用户必须具有sudo权限(使用visudoers命令检查)
  • 没有设置环境,因此$PATH变量不包含sudo命令的路径
  • sudo可能需要密码。更改sudoers文件,添加NOPASSWORD,这将是非常不安全的。或者您必须使用管道(proc_open),并通过stdin管道传递密码

我已经设法找到了这样做的方法,但在本网站上的人们提供了一些帮助之后:

load .profile with proc_open()
proc_open interaction