我试图运行一个脚本作为根用户。这是我的代码
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交互