初心者にも分かるアクセス権(パーミッション)の基本!
2014 August 26
Webサイトやブログを運営している人は、パーミッションの設定はセキュリティ上必須です。うまく設定できていないと自分の管理するファイルが他人に書き換えられたり、削除されたりしてしまうこともあります。適切な設定をして、大切なファイルを守りましょう。
パーミッションとは
ファイルやディレクトリに対するユーザー毎のアクセス権のこと。Linuxにおいて、ファイルやディレクトリは全て「パーミッション」で管理されています。このパーミッションは、「○○出来る」あるいは「○○出来ない」ということを表わしていて、○○に当たる内容は「read 読み込み」「write 書き込み」「exec 実行」の3種類。この3種類の権限を許可するか制限するかを定義しているのがパーミッションです。
パーミッションを表示する際は‘アルファベット’、設定する際は‘数字’が用いられます。
書き込み権限 write [2]とは、ファイルの内容を変更するための権限です。この権限があると、ファイルを開いて’書き込み’、’削除’、’保存’することができます。書き込み権限を表すアルファベットは[w]、数字は[2]です。
実行権限 exes [1]とは、そのファイルが実行可能ファイルであった場合に、実際にそのファイルを実行するために必要な権限です。また、ディレクトリの実行権限は、そのディレクトリ内を参照できるかどうかを決めています。実行権限を表すアルファベットは[x]、数字は[1]です。
ファイル/ディレクトリのパーミッション、所有者、所属グループは、確認したいディレクトリに移動して
$ ls -la
コマンドで確認できます。
ユーザーとグループ
パーミッションでは、「このユーザーからは読み込みと書き込みを許可する」、「このグループのメンバーなら書き込みだけを許可する」、「その他のユーザーには見せない」等、利用するユーザーへの制限を設定します。
ユーザーは、「所有者」「グループ」「その他のユーザー」の3つに分けます。
所有者
ファイル/ディレクトリの所有者
グループ
サイトの共同運営者など
その他のユーザー
WEBサイトの訪問者など
パーミッションの表記
パーミッションは「-rwxr-xr-x」のように10文字のアルファベットで表します。この表記は順番が決まっていて、先頭のファイル種別を表す1文字以降は全て3文字セットで考えます。
[ファイル種別(1)] [所有者(3)] [グループ(3)] [その他のユーザー(3)]
※()内は文字数
先頭の1文字はファイルの種別を表します。
‘d’ はディレクトリ
‘b’ はブロックデバイスのスペシャルファイル
‘c’ はキャラクターデバイスのスペシャルファイル
‘l’ はシンボリックリンク
‘p’ は名前付きパイプ
‘s’ はUNIXドメインのソケット
ファイル種別(1文字目)以降は3文字ずつセットになっていて、その3文字の順番も決まっています。
「r/- (読み込み権限あり/なし)」「w/- (書き込み権限あり/なし)」「x/- (実行権限あり/なし)」
例えば、「このファイルにおいて、所有者は 読み込み 書き込み 実行 全て可、グループとユーザーは 読み込み のみ可」は、「-rwxr–r–」と表記されます。
パーミッションの設定
パーミッションを設定するときは、「755」のように数字で表します。数字もまた、順番は決まっていて、この3文字はそれぞれ、
「4/0(読み込み権限あり/なし)」「2/0(書き込み権限あり/なし)」「1/0(実行権限あり/なし)」の「和」になっています。
例えば、「このファイルにおいて、所有者は 読み込み 書き込み 実行 全て可、グループとユーザーは 読み込みと書き込み のみ可」は、「766」と表記されます。
パーミッション変更コマンドについてはこちらを参照してください。
各ファイルの推奨パーミッション
ファイルによって一般的に推奨されているパーミッションです。場合によっては変更することもあります。
HTML・画像ファイル [-rw—-r–] [604]
CGIの実行ファイル [-rwx——] [700]
CGIのデータファイル [-rw——-] [600]
.htaccessファイル [-rw—-r–] [604]
ディレクトリ [drwx—-wx] [705]