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/php
jest to tylko miękkie łącze do /usr/bin/php5
lub 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ć php5
jako użytkownik www-data
, nawet jeśli użytkownik może nie być root
i 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/php
spokoju i zamiast tego umieścić skrypt /root/bin
. Następnie dodać ten folder do PATH poprzez .bashrc
, .profile
lub 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
, .profile
lub podobne, każda nowa powłoka otwarciu będzie można bezpośrednio wykonywać żadnych plików wykonywalnych (+ x) $HOME/bin
( /root/bin
root).
Wskazówka: możesz nazwać skrypt otoki phpwww
tak, abyś wyraźnie określił php script.php
lub phpwww script.php
zdecydował, czy chcesz regularnego czy sudo'owanego php.
Innym rozwiązaniem jest prosty alias. Umieścić to w swoim .bashrc
, .profile
lub podobne:
alias phpwww='sudo -u www-data php'