Esegui un comando come un altro utente una volta:
sudo -u www-data php script.php
Questo dovrebbe funzionare se lo sei root
.
Per quanto riguarda sempre l'esecuzione di php as www-data
, ci sono diverse possibilità. È possibile creare un semplice shellscript wrapper. Se /usr/bin/php
è solo un soft-link /usr/bin/php5
o simile, questo lo rende più semplice. Sostituisci il soft-link (NON il file php5
) con uno script come questo:
#!/bin/sh
sudo -u www-data php5 $*
return $?
Questo non è testato però. Inoltre, tieni presente che questo tenterà SEMPRE di essere eseguito php5
come utente www-data
, anche se l'utente potrebbe non esserlo root
e potrebbe non essere autorizzato a farlo. E potrebbe anche non essere quello che vuoi davvero. Alcuni servizi installati potrebbero incorrere in problemi quando si tenta di eseguire php.
Una soluzione (forse migliore) da applicare solo a root potrebbe essere quella di lasciare solo il soft-link /usr/bin/php
e posizionare lo script /root/bin
. Quindi aggiungere tale cartella a PATH via .bashrc
, .profile
o simili. Se sì /etc/skel/.profile
, ciò può indicare come è stato fatto:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Una volta che questo è nella tua .bashrc
, .profile
o simile, ogni nuova shell che apri ti permetterà di eseguire direttamente qualsiasi eseguibile (+ x) in $HOME/bin
( /root/bin
per root).
Suggerimento: potresti voler dare un nome simile allo script wrapper in phpwww
modo da specificare esplicitamente php script.php
o phpwww script.php
decidere se vuoi php regolare o sudo.
Un'altra soluzione è un semplice alias. Inserire questo nel vostro .bashrc
, .profile
o simili:
alias phpwww='sudo -u www-data php'