¿Ejecutar un comando de shell como otro usuario o cambiar el usuario de Apache?

He estado tratando de descubrir cómo hacer esto todo el día.

La versión corta: Tengo que administrar algunas máquinas virtuales usando la función php shell_exec, hasta ahora no puedo hacer esto porque apache es ejecutado por el usuario www-data y virtualbox por el usuario vboxuser

De lo que he leído hasta ahora, he pensado en 3 posibles soluciones: 1.- Crear un script en mi vboxuser que pueda llamar desde php para administrar las máquinas virtuales. 2.- Cambie el usuario de apache de www-data a vboxuser para que pueda administrar las máquinas virtuales a través de php 3.- Vuelva a instalar VirtualBox, esta vez usando www-data como mi usuario.

No estoy seguro de si alguno de estos funcionará y no estoy muy seguro de cuál sería la mejor solución. ¿Alguna sugerencia / idea?

Gracias por adelantado

Ahora la versión más larga y detallada:

Tengo un servidor remoto que ejecuta Ubuntu 10.04.2, en ese servidor he configurado VirtualBox para poder ejecutar varias instancias de WinXP para realizar diferentes tareas.

Todo está configurado y puedo administrar las máquinas virtuales a través de SSH. Si quiero ejecutarlos como un usuario diferente al que los creó (un usuario que hasta ahora solo se ha utilizado para crear las máquinas virtuales), tengo que hacer sudo -u vboxuser.

Ahora, necesito crear un script PHP para administrar estas máquinas virtuales (sé sobre phpVirtualBox, pero no es lo que necesito). Si intento ejecutar las máquinas virtuales usando shell_exec () de php, no obtengo ninguna respuesta (y he probado que shell_exec funciona en mi servidor).