[PHP-users 12284] Re: unlink によるファイル削除エラー

Yasuo Ohgaki php-users@php.gr.jp
Fri, 20 Dec 2002 19:13:06 +0900


大垣です。

鈴木 浩之 wrote:
>>もしディレクトリのパーミッションを「777」にしない、
>>その他の方法があればアドバイを御願いします。
> 
> 
> chown nobody.nobody ファイル・ディレクトリ名
> を試してみてください。
> 
> PHPに限らず、CGI・SSIなどApacheから実行されるプログラ
> ムは「nobody」というユーザー権限で実行されます。(デ
> フォルト設定の場合)
> 
> したがってファイルの持ち主をnobodyとしてしまえば操作で
> きるのです。
> 
> パーミッション 777 だとnobodyからも操作できますが、それ
> 以外の人でも操作できてしまうので危ないです。
> ご注意。

多少、誤解をされているようなのでコメントします。
UNIX系OSの場合、パーミッションが777でもsticky bitをつけ
ていれば安全です。詳しい説明は省略しますが、

ディレクトリのパーミッション
ファイルのオーナー、グループの設定ルール
OSがファイルへのアクセス許可する手順

はディレクトリのパーミッションが777でも安全になるように作られ
ています。さらに詳しくどのようにセキュリティーが確保されている
か興味のある方は、UNIX系OSがどのように/tmpディレクトリのセ
キュリティーを確保しているのか調べてみると良いと思います。

# 特定ユーザーだけでアクセスするのであれば、特定ユーザーを
# オーナーにして適切なパーミッションにする、という方法で事
# 足りますが...

--
Yasuo Ohgaki