PHPのファイル関連の処理でパーミッションのメモ。
ユーザー権限の前提
- ファイルのオーナー: hetemlアカウント(以下foo)
- Apache実行ユーザー: apache
実行ユーザーはhttpd.confのUserディレクティブで設定する。
hetemlはhttpd.confを確認できないのでとりあえずapacheで考える。
※Apacheの実行ユーザーはhetemlアカウント(foo)とは異なる。
- PHP実行ユーザー: hetemlアカウント(foo)
(hetemlはPHPをCGI版で動かしている:Server API : CGI)
PHPがモジュールで動くときはApacheユーザー(apache)がPHPファイルを処理する。
HTTPリクエスト対する実行ユーザー
- HTMLファイル: apache。
- PHPファイル: foo
処理に必要なパーミッション
- HTMLファイルの表示
- ファイル
「その他」に読込権限があればよい(004)。
ApacheがHTMLファイルを読み込み表示処理する(ユーザーapache)。
- 親ディレクトリ
「その他」に実行権限であればよい(001)。
- PHPファイルの実行
- 「オーナー」に読込権限があればよい(400)。
PHP本体がPHPファイルを読み込んで処理する。
[http://questionbox.jp.msn.com/qa3699408.html](パーミッションについて 読取権限と実行権限の違い – 質問・相談ならMSN相談箱)
ユーザーfooが実行。
- 親ディレクトリ
「オーナー」、「その他」に実行権限があればよい(101)。
- PHPファイルの作成・削除
親ディレクトリの「オーナー」の権限が読み・書き・実行可能(700)ならファイルを作成・削除できる。
hetemlはたぶんHTMLファイルとPHPファイルを実行・作成・削除はディレクトリのパーミッションが701であればいい?