PHP:以root用户运行Shell Script


PHP: Run Shell Script as root user

我试图运行一个脚本作为根用户。这是我的代码

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.

我也遵循这些方法,但最终与no permission错误

您可能会遇到几个问题:

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

我已经设法找到了这样做的方法,但是在这个网站上的一些人的帮助下:

load .profile with proc_open()
proc_open交互