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