WordPressのブログやサイトを運営していると、

時折、ファイルのパーミッションを設定する場面に遭遇します。

 

例えば、当サイトのメインテーマとなっているサーバーの移行があります。

データベースをダウンロードまたはアップロードし終えたら

適切なパーミッションを与えておかないと、後から問題を起こす可能性だってあるのです。

 

でも、パーミッションってそもそも何なのでしょう?

いろいろな解説に出てくる644(とか755など)を設定する意味って何なのでしょう?

知らなくても理解できるようにめちゃくちゃ易しく説明してみようと思います。

”644”の意味

詳しい説明をする前に、644が意味するところを先に書いておきます。

パーミッションに644と設定すると、

  1. ”所有者”に対して、「読み」、「書き」の権限を付与する
  2. ”所有者グループ”に対して、「読み」の権限を付与する
  3. ”その他”に対して、「読み」の権限を付与する

 

という意味になります。

どうして644の設定がこういう意味になるのか、順番にひも解いていきましょう。

パーミッションとは?

まずは言葉の意味から。

 

パーミッションとは、「許可」、「許諾」、「認可」などと訳されます。

今回のようにフォルダやファイルに対して使うときは、

「管理者から付与される権限」のことと理解すればよいです。

 

つまり、フォルダやファイルに対して

”管理者は、どのような操作をすることを許しているのか?”

ということなのです。

 

管理者が操作の許可を与える設定対象は、3つに分けられています。

  1. フォルダやファイルの所有者
  2. 所有者が所属するグループ
  3. その他

 

このように分類された3つに対して

それぞれどのような操作を許可するかということを設定することが、

パーミッションを設定する(=権限を付与する)ということなのです。

設定できるパーミッションの種類

では、具体的にどのような権限を与えることができるのでしょうか?

これも3種類あります。

  1. 読み(read)・・・フォルダやファイルを読むだけの権限。編集や削除はできない。
  2. 書き(write)・・・フォルダやファイルに対して編集や削除ができる。
  3. 実行(execute)・・・サーバー上でファイルを実行できる。CGIスクリプトなどで必要。

 

この権限と先ほど説明した対象者とを組み合わせて

”誰に”、”どのような権限”を与えるのか?ということを設定します。

パーミッション”644”の謎

ここからパーミッション”644”の謎を明らかにしていきます。

まずは、図1を見てください。

パーミッション設定-対象者と権限の関係

図1 対象者と権限の関係

 

3つの対象者について、それぞれ3つのグレーの箱があります。

そこにアルファベットが書かれているもの、ハイフンが書かれているものがありますね。

この3つの箱は、左から「読み」、「書き」、「実行」権限の種類を表します。

 

そして、それぞの箱に

アルファベットが書かれていれば権限が付与されていることを意味しており、

ハイフンが書かれていれば権限が付与されていないことを意味しています。

 

よって、図1では

  1. ”所有者”に対して、「読み」、「書き」の権限を付与する
  2. ”所有者グループ”に対して、「読み」の権限を付与する
  3. ”その他”に対して、「読み」の権限を付与する

ということを示しています。

 

ところで、このアルファベットには各々対応する数字が1つずつ決まっています。(図2)

パーミッション設定-アルファベットと数字の関係

図2 アルファベットと数字の関係

 

図1で、所有者に対して「読み」と「書き」が与えられていました。

複数の権限を与えるときは、それらの数字を足し算するというルールになっています。

すなわち、「読み」+「書き」=4+2=6となります。

もし、全部の権限を付与するなら、4+2+1=7となるわけです。

 

これを先ほどのa~cに示した権限を数字で表すとこのようになります。

  1. ”所有者”に対して、付与された権限は「6」
  2. ”所有者グループ”に対して、付与された権限は「4」
  3. ”その他”に対して、付与された権限は「4」

 

とうとう”644”という数字が出てきました。

 

つまり、644というパーミッションは、

所有者には「読み」と「書き」を、

所有者グループとその他には「読み」のみの権限を

与えているという意味だったのです。

 

このことを理解できれば「755を設定してください」と言われたときでも

それが何を意味しているのかがわかるようになります。

 

逆に、「読み」+「書き」を所有者だけに付与したいというのであれば、

700と設定すればよいということもわかるでしょう。

【広告】

コンピュータに詳しい方向けの説明

ところで、コンピュータの世界は0と1で表現される2進数が基本です。

だから、先ほどの4、2、1も2進数から来ている数字なのです。

 

どういうことか?

先ほどの644を2進数に変換してみましょう。

パーミッション設定-8進記法と2進記法

図3 8進記法と2進記法

 

644の各桁が3ビット(8進数)で表されていることがわかります。

そして、この3ビットが「読み」、「書き」、「実行」に対応しています。

これがわかる人は、2進数で考えた方が答えがでやすいかもしれませんね。

まとめ

今回は、サーバー上にあるファイルのパーミッションの設定について説明しました。

一般的な説明をすると、理解しにくいと思ったので、

644の謎を解くという形式をとってパーミッションの設定方法のルールを

理解してもらえるようにしたつもりです。

 

結局は、図1と図2のルールを覚えておけば

パーミッションの設定はできるようになるということです。

ぜひ、参考にしてください。

【広告】