Ejecute un comando como otro usuario una vez:
sudo -u www-data php script.php
 
 Esto debería funcionar si eres root .
 En cuanto a ejecutar siempre php como www-data , hay varias posibilidades. Puede crear un shellscript de envoltura simple. Si /usr/bin/php es solo un enlace suave a /usr/bin/php5 o similar, que lo hace más sencillo. Simplemente reemplace el enlace suave (NO el archivo php5 ) con un script como este:
#!/bin/sh
sudo -u www-data php5 $*
return $?
 
 Aunque eso no está probado. También tenga en cuenta que esto SIEMPRE intentará ejecutar php5 como usuario www-data , incluso si el usuario no puede ser root y es posible que no tenga permiso para hacerlo. Y también puede que no sea lo que realmente quieres. Algunos servicios instalados pueden tener problemas al intentar ejecutar php.
 Una solución (posiblemente mejor) para aplicar solo eso a la raíz puede ser dejar el enlace suave /usr/bin/php solo y coloque el script en /root/bin en cambio. Luego agregue esa carpeta a PATH a través de .bashrc , .profile o similar. Si tienes /etc/skel/.profile , que puede señalar cómo se hace eso:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
 
 Una vez que esté en su .bashrc , .profile o similar, cada nuevo shell que abra le permitirá ejecutar directamente cualquier ejecutable (+x) en $HOME/bin (/root/bin para raíz).
 Sugerencia:es posible que desee nombrar la secuencia de comandos contenedora algo así como phpwww por lo que especifica explícitamente php script.php o phpwww script.php para decidir si desea php regular o sudo.
 Otra solución es un alias simple. Coloca esto en tu .bashrc , .profile o similar:
alias phpwww='sudo -u www-data php'