apache php 执行shell,php-以其他用户身份运行shell命令或更改Apache用户?

我一直试图弄清楚整天如何做.

简短版:我必须使用php shell_exec函数来管理某些虚拟机,到目前为止,我无法做到这一点,因为apache由用户www-data运行,而vbox由用户vboxuser运行

到目前为止,我已经想到了3种可能的解决方案:

1.-在我的vboxuser上创建一个脚本,我可以从php调用该脚本来管理虚拟机.

2.-将apache用户从www-data更改为vboxuser,这样我就可以通过php管理虚拟机

3.-重新安装VirtualBox,这次使用www-data作为我的用户.

我不确定其中任何一个是否可以使用,我不太确定哪种方法是最佳解决方案.有什么建议/想法吗?

提前致谢.

现在更长更详细的版本:

我有一台运行Ubuntu 10.04.2的远程服务器,在该服务器中,我已经设置了VirtualBox,因此我可以运行WinXP的多个实例来执行不同的任务.

一切都已设置好,我可以通过SSH管理虚拟机.如果要以与创建它们的用户不同的用户身份运行它们(到目前为止,该用户仅用于创建虚拟机),我必须执行sudo -u vboxuser.

现在,我需要创建一个PHP脚本来管理这些虚拟机(我了解phpVirtualBox,但这不是我所需要的).如果我尝试使用php中的shell_exec()运行虚拟机,我将一无所获(而且我已经测试过shell_exec在我的服务器上正常工作).

解决方法:

您可以配置sudo以允许www-data以vboxuser的身份执行命令

使用sudo visudo将行添加到/ etc / sudoers中,例如

www-data(ALL)=(vboxuser)/usr/bin/vboxmanage

检查man sudoers以获取更多信息

标签:shell,ubuntu,virtualbox,php

来源: https://codeday.me/bug/20191208/2091754.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值