gpt4 book ai didi

php - 以另一个用户身份运行 shell 命令或更改 Apache 的用户?

转载 作者:搜寻专家 更新时间:2023-10-31 20:52:50 26 4
gpt4 key购买 nike

我一整天都在想办法解决这个问题。

简短版本:我必须使用 php shell_exec 函数管理一些虚拟机,到目前为止我不能这样做,因为 apache 由用户 www-data 运行,而 virtualbox 由用户 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 以获得更多信息

关于php - 以另一个用户身份运行 shell 命令或更改 Apache 的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5797816/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com