当前位置: 首页 > 知识库问答 >
问题:

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

哈雅珺
2023-03-14

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

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

共有1个答案

夹谷俊远
2023-03-14

您可能会遇到以下几个问题:

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

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

负载proc_open()与proc_open交互的配置文件

 类似资料:
  • 我最近开始使用Jenkins进行集成。在没有shell命令的情况下在主节点上运行作业之前,一切都很好,但我必须在主节点和从节点上运行作业,从节点包含要运行的shell命令。我无法以root用户身份运行这些shell命令。我试过了 使用 在shell命令中设置用户名 使用 每次使用上述任何一种方法时,我都会遇到错误。

  • 我使用Ansible安装了Nginx。要在Centos7上安装,我使用了yum软件包,因此默认情况下它是以root用户身份运行的。我希望它在Centos中以不同的用户(前nginx用户)身份启动和运行。当我尝试与其他用户一起运行时,会出现以下错误: nginx的工作。服务失败,因为控制进程已退出,错误代码为。有关详细信息,请参阅“systemctl status nginx.service”和“j

  • 问题内容: 我最近开始使用Jenkins进行集成。一切都很好,直到我在没有shell命令的情况下在主节点上运行作业,但是我必须在包含shell命令的主节点和从属节点上运行作业。我无法以root用户身份运行这些Shell命令。我努力了 使用。 在shell命令中设置用户名。 使用。 我得到我每次使用任何上述方法时错误。 问题答案: 您需要修改用户的权限,以便您可以运行shell命令。您可以将jenk

  • 我正在Docker中制作python Django应用程序的简单图像。但是在构建容器的末尾,它抛出了下一个警告(我正在Ubuntu 20.04上构建):

  • 问题内容: 我正在使用Python在系统级别的Linux中进行项目。因此,我想知道,如果我以普通用户身份运行代码,并且正在访问系统文件,那么它应该具有root权限,那么我如何提示输入root密码并以超级用户身份运行其他代码。我想知道,如何以超级用户身份以密码提示运行python脚本。 任何帮助将不胜感激。先感谢您.. 问题答案: 您可以做的另一件事是,如果脚本不是以root身份执行的,则脚本会自动

  • 本文向大家介绍以非root用户身份运行Docker容器,包括了以非root用户身份运行Docker容器的使用技巧和注意事项,需要的朋友参考一下 当您在Docker容器中运行应用程序时,默认情况下,它有权访问所有root特权。您可能已经注意到,当打开Ubuntu Docker Container Bash时,默认情况下您以root用户身份登录。在应用程序的安全性方面,这可能是一个主要问题。任何局外人