2011-04-26 54 views
3

我一直在試圖弄清楚如何做到這一整天。以另一個用戶身份運行shell命令或更改Apache的用戶?

簡短的版本:我使用PHP了shell_exec函數來管理一些虛擬機,到目前爲止,因爲Apache是​​由用戶WWW的數據和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在我的服務器上工作)。

回答

1

要修改Apache的用戶,您可以編輯:

/etc/apache2/envvars 

,並更改APACHE_RUN_USER =根

或者你可以從根的cron執行它

sudo crontab -e 

HTH

2

您可以配置sudo以允許www-data執行命令,如vboxuser 使用須藤visudo命令到線路添加到/ etc/sudoers的像

WWW的數據(ALL)=(vboxuser)的/ usr /斌/ vboxmanage

檢查人sudoers的更多信息,

相關問題