【初心者向け】ファイルのパーミッション(権限)とは? – 簡単解説

thumbnail

Windowsを使っているとあまり馴染みがありませんが、ファイルにはパーミッションと呼ばれる権限の設定があります。

パーミッションとは?

パーミッションは3桁の数字か、英語で書かれています。
例えば「644」「777」などの数字か、「rw-r- -r- -」といった英語の表記です。

もしWebサイトを運営したことがあるなら、FTPなどでこのような表記をみたことがあるかもしれません。

少しややこしいですが、パーミッションとはファイルを「誰が」「どう」扱えるのかを示したものになっています。

パーミッションの基礎知識

「r w x」の意味

まず、英語で表記したとき 「r」「w」「x」を組み合わせて表記しますが、これはそれぞれ、

  • read(読み取り)
  • write(書き込み)
  • executable(実行)

の略称です。

「実行」の executable だけ何で e じゃなくて x なの?
というツッコミがありそうですが、偉い人が決めてしまったので仕方がありません。

見ての通り、それぞれ「読み取り」や「書き込み」などを表しています。

例えばパーミッションのところに「r」と表示されていれば、「あぁ、読み取りできるんだなぁ」と考えることができます。

-(ハイフン)」の場合には権限が与えられていません。
もし「r – -」と表示されている場合には、「読み取りは出来るけど書き込みと実行はするな」ということになります。

ちなみに「- – -」(全部ハイフン)だった場合には「見るな、変えるな、実行するな」となり文字通り何も出来ません。

3つの対象者がいる

パーミッションは、通常「rwxrw-r- -」のように9文字で書かれています。
これを3文字ごとに区切って、それぞれ

  • 所有者
  • グループ
  • 他の誰か

の、権限を表しています。

「所有者」などと言っても、普段PCを使う上であまり馴染みが無いと思いますが、実はファイルには1つ1つ、所有者が誰なのかという情報が書き込まれています。
他の人が重要なファイルを勝手に開いたり、書き換えたり出来ないようにするためのものです。

ただ、いちいち所有者だけしか扱えないというと何かと面倒なので、「グループ」という仕組みがあります。
例えば「管理者」というグループを作って、ユーザーを追加しておけば、このグループに所属している人ならファイルの所有者じゃなくても扱えますよ~ということが可能になります。

ちなみに「他の誰か」とは、文字通り「所有者」ではなく、「グループ」にも所属していない人を指します。

数字で表す場合

数字で表記する時は、対応する数字を暗記して足し算するだけでOKです。

  • r が 4
  • w が 2
  • x が 1

という風に数字は決まっているので、あとは権限に応じて数字を足し算します。
ちなみに「-(ハイフン)」は 0 です。

「rwx」だったら全て足して「7」に、「rw-」なら4+2で「6」となります。
なので、例えば「754」は「rwxr-xr- -」と同じ意味になります。

なぜパーミッションが必要なの?

パーミッションがないと、極端な話が誰でも好き放題ファイルをいじくり回せるので、世界中のサーバーやPC、さらにスマートフォンまで大変なことになってしまいます。

例えばWebサーバーであれば、公開しているHTMLファイルを勝手に書き換えられて不審なサイトへ飛ばされてしまうといったことが起こり得ます。

なので、パーミッションの設定を正しく行うことは非常に大切で、セキュリティの基本と言えます。

Webサーバーでの設定例

不特定多数がアクセスするWebサーバーのパーミッション設定をする時は、適切なパーミッション設定が求められます。

下記は「Wordpress」ディレクトリのパーミッション設定の一例です。

一般的なファイルは「644(rw-r- -r- -)」、重要なパスワード等を記述したwp-config.phpは「400(r- – – – – – – -)」に設定されています。

基本的に所有者でなければファイルの変更と実行は出来ないようになっています。

まとめ:適切なパーミッション設定が必要

パーミッションを適切に設定することで、セキュリティを向上させることが出来ます。
ただし、パーミッションを設定しただけでは安全とは言えず、他のセキュリティの運用が前提になるので、注意が必要です。