よくWEBサーバーの構築なんかで、公開するドキュメントルート配下のhtmlファイル所有者をapacheユーザーにするっていうのをよく見かける。
正直言うとあれ、なんでやってんのか分かってなかった。
apacheユーザーがブラウザ表示している
apacheユーザーは何をしてくれるかというと、htmlファイルやらPHPファイルやらを読み込みブラウザで表示させてくれている。
ここで間違えやすい考えは、ブラウザを使って表示させているんだから、 その他ユーザーの権限でファイルを読み込んでいるということ。
そう、htmlファイルの読み込みなどは、その他ユーザーがやっているわけではなく、apacheユーザーが行っているのだ。
apacheはデフォルトではその他ユーザーの属する
所有権をなにも設定していない場合、通常apacheユーザーは、普通の一般ユーザーであるため、その他ユーザーに属する。
そのため、WEBで公開するファイルやディレクトリにはその他ユーザーへ読み込み権限を与えればOKということになる。
その他ユーザーに読み込み権限がないとき
例えば、ファイルのパーミッションが「640」の場合はどうでしょう。
apacheユーザーはその他ユーザーなので、読み込み権限がない。
ブラウザでhtmlファイルにアクセスすると、「Forbidden You don’t have permission to access /index.html on this server. 」となり表示ができなくなる。
その他ユーザーに読み込み権限を与えて「644」にすればいいのだが、その他にもやり方がある。
所有者をapacheユーザーにするか、グループにapacheユーザーを追加してあげればいい。
そうすれば、その他ユーザが読み込み権限がなくても、apacheユーザーに読み込み権限が与えられる。
冒頭では、なぜドキュメントルート配下の所有権をapacheユーザーにするか?ということを話した。
その答えは、apacheユーザーは、公開用ファイルを読み込んでブラウザで表示する役割をしているから必要だということ。
結局、パーミッションの設定はどうすればいい?
一般的にWEBに公開するパーミッションはファイルの場合「644」、ディレクトリの場合「755」。
ディレクトリに場合、ファイルをアップロードする場合があるので、書き込み権限もある設定しておく。
コメント