別のユーザーとしてコマンドを1回実行します。
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 $?
それはテストされていません。また、ユーザーがそうでなくても、実行する権限がない場合でも、これは常にphp5userとして実行しようとすることに注意してください。そして、それはあなたが本当に望んでいるものではないかもしれません。インストールされたサービスの中には、phpを実行しようとしたときに問題が発生するものがあります。www-dataroot
ルートにのみ適用する(おそらくより良い)ソリューションは、ソフトリンクを/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/binfor root)で実行可能ファイル(+ x)を直接実行できます。
ヒント:ラッパースクリプトに次のような名前を付けて、phpwww明示的に指定するphp script.phpかphpwww script.php、通常のphpかsudo化されたphpのどちらにするかを決定できます。
別の解決策は、単純なエイリアスです。あなたにこれを置き.bashrc、.profileまたは類似:
alias phpwww='sudo -u www-data php'