Запустите команду от имени другого пользователя один раз:
sudo -u www-data php script.php
Это должно работать, если вы root
.
Что касается всегда запуска php как www-data
, есть несколько возможностей. Вы можете создать простую оболочку. Если /usr/bin/php
это только софт-ссылка /usr/bin/php5
или подобное, это упрощает. Просто замените программную ссылку (НЕ файл php5
) на скрипт вроде этого:
#!/bin/sh
sudo -u www-data php5 $*
return $?
Это не проверено, хотя. Также имейте в виду, что это ВСЕГДА будет пытаться запускаться php5
от имени пользователя www-data
, даже если пользователь может root
и не иметь разрешения на это. И это также может быть не то, что вы действительно хотите. Некоторые установленные службы могут столкнуться с проблемами при попытке запустить php.
(Возможно, лучше) решение применить это только к root может заключаться в том, чтобы оставить программную ссылку в /usr/bin/php
покое и вместо нее поместить скрипт /root/bin
. Затем добавить эту папку в PATH через .bashrc
, .profile
или аналогичный. Если у вас есть /etc/skel/.profile
, это может указать, как это делается:
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
После того, как это в вашем .bashrc
, .profile
или подобном, каждой новой оболочке открытия позволит вам напрямую выполнить любые исполняемые файлы (+ х) $HOME/bin
( /root/bin
для корня).
Подсказка: вы можете захотеть назвать скрипт-обертку как-то так, phpwww
чтобы вы явно указали php script.php
или phpwww script.php
решили, хотите ли вы обычный или sudo'ed php.
Другое решение - простой псевдоним. Поместите это в вашем .bashrc
, .profile
или аналогичном:
alias phpwww='sudo -u www-data php'