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