Запустіть команду як інший користувач один раз:
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'