サーバーのパーミッション(属性値)と適正値

UNIXのシステムにおけるファイルやフォルダのアクセス権のことを、パーミッションという。ファイルやフォルダごとにアクセス権を設定して、定められた人のみが変更できるよう設定することができる。

Apacheサーバーの所有権の種類

自分(Owner)ファイル/ディレクトリの所有者、本人のこと
グループ(Group)同じサーバーを利用できるユーザ全体
他人(Other)その他全て、第三者のこと。Web上の一般閲覧者

パーミッションの種類

  • 読み取り権限
  • 書き込み権限
  • 実行権限

ファイルとディレクトリの実行権の違い

アクセス権ファイルディレクトリ
読み取り権限ファイルの内容を
読みだす(表示する)ことができる
ディレクトリ内のファイル一覧を読み取れる(リストの表示可能)が、
ファイルへのアクセスやcdコマンドによる移動はできない
書き込み権限ファイルの内容を
変更(上書き、削除)できる
ディレクトリ内にファイルを作成したり、
ディレクトリ内のファイルを削除したりできる
実行権限ファイルをプログラムとして
実行できる
ディレクトリ内にcdコマンドで移動したり、
ディレクトリ内のファイルにアクセスできる

ディレクトリのパーミッションの場合、あくまで「ディレクトリ」に対するものなので、その配下のファイルまで権限があるわけではない。ファイルはファイルで、ディレクトリはディレクトリで権限の設定が必要となる。

権限動作
読み取り(read)ファイルを読む権利がなくても、ファイルネームを表示する事は可能である。
書き込み(write)ディレクトリに書き込む権利がない場合、そのディレクトリ内で新規ファイルを作成できない。
実行(execute)実行する権利を有効にするには、読み取りる権利も必要である。
CGIのようなサーバーサイドでスクリプトを動作させる事ができる。
HTMLやCSSなどは、動作しないため、「実行」を設定しても特に意味はない。

パーミッションの見方

表記読み取り権限書き込み権限実行権限何もできない
アルファベット表記rwx
数値表記4210

アルファベット表記の例

rw-rw-r--というパーミッションの場合、9文字が所有者、グループ、その他に3文字ずつ割り当てられる。

rw-rw-r–
所有者グループその他

所有者とグループはrw-なので、読み取り権限があり、書き込み権限があり、実行権限がないという意味になる。

その他はr--なので、読み取り権限しかない。

-(ハイフン)は権限がないという意味。

数値表記の例

数値の表記では、各ユーザーごとに、数値を足して表記する。

アルファベット表記のパーミッションがrw-rw-r--は、数値表記では、664となる。

rw-rw-r–
所有者グループその他
4+2+04+2+04+0+0
664

rは4、wは2、xは1で表し、それを足した数値で表すため、664となる。

フルパーミッション

読み書き実行全ての権限を全てのユーザーが持つ場合は777となる場合、フルパーミッションという。

セキュリティ上ではこの設定は殆どの場合避ける必要がある。

パーミッションの適正値

HTML 画像ファイル604、644
CGIの実行ファイル700、705、755
CGIのデータファイル600
.htaccessファイル604、644
.txt / .dat / .log などのファイル600
ディレクトリ705、755

グループ権限はレンタルサーバーによって推奨値が異なるようだ。

検証

サーバー上に設置したファイルのパーミッションを変更してアクセスし、表示の違いを検証する。

パーミッション700600500400300200100000
phpファイル
✕は「Access denied.」と表示された時

Webに表示しアクセスするためには、パーミッション400、つまり読み取り権限が必要ということがわかった。

また、070、007はAccess denied.、ステータスは403となった。