Uruchom komendę jako inny użytkownik raz:
sudo -u www-data php script.php
To powinno zadziałać, jeśli tak root.
Jeśli chodzi o zawsze uruchamianie php as www-data, istnieje kilka możliwości. Możesz stworzyć prosty skrypt powłoki. Jeśli /usr/bin/phpjest to tylko miękkie łącze do /usr/bin/php5lub podobne, to upraszcza to. Po prostu zastąp link programowy (NIE plik php5) skryptem takim:
#!/bin/sh
sudo -u www-data php5 $*
return $?
To jednak nie zostało przetestowane. Pamiętaj również, że ZAWSZE będzie to próbowało działać php5jako użytkownik www-data, nawet jeśli użytkownik może nie być rooti może nie mieć na to pozwolenia. I może nie być tym, czego naprawdę chcesz. Niektóre zainstalowane usługi mogą napotykać problemy podczas próby uruchomienia php.
(Prawdopodobnie lepszym) rozwiązaniem, aby zastosować to tylko do roota, może być pozostawienie soft-linku w /usr/bin/phpspokoju i zamiast tego umieścić skrypt /root/bin. Następnie dodać ten folder do PATH poprzez .bashrc, .profilelub podobnym. Jeśli tak /etc/skel/.profile, może to wskazywać, jak to się robi:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
Po to jest Twój .bashrc, .profilelub podobne, każda nowa powłoka otwarciu będzie można bezpośrednio wykonywać żadnych plików wykonywalnych (+ x) $HOME/bin( /root/binroot).
Wskazówka: możesz nazwać skrypt otoki phpwwwtak, abyś wyraźnie określił php script.phplub phpwww script.phpzdecydował, czy chcesz regularnego czy sudo'owanego php.
Innym rozwiązaniem jest prosty alias. Umieścić to w swoim .bashrc, .profilelub podobne:
alias phpwww='sudo -u www-data php'