パーミッションとは?

パーミッションとは、ファイルやディレクトリ(=フォルダ)ごとに定義されたアクセス権のことを指します。この権限には「読む・書く・実行する」の3つの種類があって、それぞれを数字の「4・2・1」で表したり、英字の「r・w・x」で表します(本記事では数字での設定を前提に話を進めます)。

パーミッションの種類

各パーミッションの概要は以下の通りです。

読む (4)

読む(見る)ことが出来る権限。HTMLやCSSファイルのようなサイトを表示させるために読みこみが必要なファイルに必要な権限です。画像ファイルなどもそうですね。

書く (2)

書き換えたり削除が出来る権限。データの書き込みや書き換えが必要になるファイルに使います。サーバー上でファイルを上書きしたり、ログを書き込んだり、などの際に用いたりします。

実行する (1)

サーバー側で動作・実行が出来る権限。CGIスクリプトなどのサーバー側で動かすファイルが該当します。ちなみに、HTML/CSS/javascriptファイルは、ブラウザ側で動作するものなのでこの権限は不要です。

※これらの権限は、ファイルごとに複数の設定が可能です。例えば「読む+書く+実行する」の3つの権限を与える場合は「4+2+1」で7といった具合です
※何も権限を与えない場合は数字が加算されない状態=「0」となります

パーミッションの対象者について

上記では、パーミッションの各権限についてご説明しました。さて、ここで考えて欲しいのは「場合によって権限を変える必要性がある」ということです。

例えば、サーバーにアップされているHTMLファイル。これ、他人が改ざん出来てしまうと非常にマズいですよね。勝手に情報が書き換えられて、偽の情報が掲載されたり、悪質なサイトへのリンクが貼られたり、スクリプトが仕込まれたり。

なので、権限には「所有者」「グループ」「その他」という3つのユーザー別に設定できるようになっていて、各権限の設定は数字を並べて設定します。たとえば、「読む(4)」という権限を全員に設定する場合は「444」となります。権限が設定できるユーザー概要は以下の通りです。

所有者 (または「オーナー」)

ファイルの所有権を持つ人を指します。原則的にはファイルやディレクトリの作成者が該当するので、あなたがFTPでサーバーにファイルをアップした場合の所有者はあなたになります。ただ、ブラウザやウェブ経由でファイルをアップしたり生成した場合は、所有者が異なる場合もあります。

グループ

例えば複数人でサイトを製作し、そのグループにだけファイルを読み書きさせたい場合などに、サーバー側で設定するグループのことを指します。

その他

所有者にもグループに属さないそれ以外がこれにあたります。一般アクセスの人たちですね。

パーミッションの設定方法

パーミッションの権限・対象については解説しましたので、次はその具体的な設定方法についてご紹介します。

以下は、一般的なパーミッションの設定例です。これを見て、どのようにパーミッションが設定されているかを見てみましょう。

ディレクトリ 755、または705
HTML・画像ファイル 644、または604
CGIの実行ファイル 755、または705
CGIのデータファイル 666、または606

ディレクトリ (755、または705)

ディレクトリにはあらゆるファイルが入っていますので、基本は「読む(4)+実行(1)=5」の権限が全員に付与されて「555」。ただ、所有者はディレクトリの書き換えや削除の権限も必要なので、所有者のみ「読む(4)+書く(2)+実行(1)=7」となるので「755」。ちなみに、グループがない場合はグループの権限が0の「705」が良い。
01

HTML・画像ファイル (644、または604)

HTMLや画像ファイルは、「読む(4)」権限を全員に付与して「444」。ただ、所有者はファイルの書き換えや削除の権限が必要なので、所有者のみ「読む(4)+書く(2)=6」となり「644」。こちらも、グループがない場合はグループ権限が0の「604」が良い。
02

CGIの実行ファイル (755、または705)

CGIを作動させるには、実行(1)と読む(4)権限が必要になるので、それを全員に付与して「555」。ただ、所有者はこれに書く(2)権限も必要になるので所有者のみ「読む(4)+書く(2)+実行(1)=7」となって「755」。グループ権限が不要な場合は「705」が良い。
01

CGIのデータファイル (666、または606)

CGIのデータファイルは原則「読む(4)+書く(2)」さえ出来ればいいファイルなので、全員にこの権限を付与して「666」となります。グループ権限が不要な場合は「606」に(場合によっては、『その他』のユーザーにも権限を付与しない「600」という設定になる場合もあり)。
03

パーミッションの設定のおさらい

パーミッションは、適切に設定をしないとマズい状況を作ってしまうことが多々あります。例えば、所有者だけ「読む(4)+書く(2)」さえ出来ればいい場合は、パーミッションは「600」でよかったりします。これが「604」になると、他人が閲覧できる状態になってしまうんですよね。

よくある落とし穴は、.txt、.dat、.logなどのテキストファイルが「604」のままになっていることだ。これらのファイルには重要な情報が含まれていることが多く、かつて、「data.txt」とWebで検索をかけると個人情報が多くヒットしたというのは有名な話だ。 引用:第2回 「パーミッションの意味と使い分け」 – MdN Design Interactive

各サーバーごとに推奨設定がありますので、皆さんが利用されているサーバーのパーミッションの設定については、必ず目を通しておくようにしましょう。