知らなきゃ絶対損するPCマル秘ワザ
『月,水,金』の週3回更新!(予定)

素材提供:写真素材 足成 様
こんにちは、さち です。
先日、ブログの総アクセス数が100万を突破しました!
これもブログを見て下さっている皆様のおかげです。
本当にありがとうございます。
これからも200万アクセスに向けて頑張っていきます。
「知らなきゃ絶対損するPCマル秘ワザ」をよろしくお願いします。
今回は久しぶりにサーバ管理に関する記事です。
パーミッション(属性)は勉強したつもりだったのですが
最近色々と苦労をしたのでまとめておきます。
パーミッションって何?
ウェブサイトの基本「HTML」「CSS」画像の「JPEG」「PNG」「GIF」
音楽の「MP3」「AAC」
サーバ上で動くプログラム「PHP」「Perl」
それぞれのファイルには利用目的があります。
中には、セキュリティ上
サイトに来た一般の人に見られては困るものもあります。
この問題を解決するのが「パーミッション」です。
「パーミッション」とは、簡単に言うと
サーバ上にあるファイルへのアクセスを制限する機能です。
管理する人は3種類
管理する人たちは全部で3種類に分かれています。■ユーザ(User)
サーバにログインできる人。つまり、サイトの管理人である自分。
オーナー、所有者 と呼ばれることも。
■グループ(Group)
ユーザと同じサーバを使っている他の人。
共用サーバの場合、ユーザ(自分)と同じサーバを使う他のユーザ。
■その他(Others)
上の2つ以外の人。つまり、サイトを見に来る一般の人。
一番気をつけて管理をしないといけないのは
やはり、「その他(サイトを見に来る人)」ですね。
アクセス権限の管理は3種類に分かれています。
それぞれの 記号、数値 については後述します。
(「ディレクトリ」とは、Windows でいう「フォルダ」のこと)
■読み込み(read)
ファイル: 読み込みを許可するかどうか。
ディレクトリ: 中身の閲覧,検索等を許可するかどうか。
記号は「r」、数値は「4」。
■書き込み(write)
ファイル: 書き込みを許可するかどうか。
ディレクトリ: ファイル作成、削除、パーミッション変更等を許可するかどうか。
記号は「w」、数値は「2」。
■実行(execute)
ファイル: 実行を許可するかどうか。
ディレクトリ: 中にあるファイルへのアクセスを許可するかどうか。
記号は「x」、数値は「1」。
例えば、HTML,画像等の公開するファイルは「読み込み」を許可
データの書き換えが必要なファイルは「書き込み」を許可
PHP, Perl等のファイルは「実行」を許可しておく必要があります。
ディレクトリのパーミッションは
その中にあるファイルにも影響を与えます。
例えば、画像(読み込み:許可)が
ディレクトリ(実行:不許可)に入っているとします。
この場合、ディレクトリ内のファイルにアクセスできないため
画像を読み込むことはできません。
実際の管理
「管理する人(3種類)」と「アクセス権限(3種類)」を紹介しました。実際にどのように表すのかを見てみましょう。
前項の説明で各アクセス権限には記号と数値がありましたよね。
それを使って表していきます。
例えば、次のような場合どうなるのか見ていきましょう。
ユーザ | グループ | その他 | |
[r]読み込み(4) | ○ | ○ | ○ |
[w]書き込み(2) | ○ | × | × |
[x]実行(1) | ○ | ○ | ○ |
↓ | ↓ | ↓ |
記号 | rwx | r-x | r-x |
---|---|---|---|
属性値 | 7 | 5 | 5 |
記号は「rwxr-xr-x」となります。
単に「ユーザ」「グループ」「その他」を順に並べただけ。
属性値は「755」となります。
これは各アクセス権限の数値を足し算したもの。
例えば、「ユーザ」は「4+2+1」で「7」
「グループ」「その他」は「4+1」で「5」というわけです。
■余談 - パーミッションの数値と二進法の関係
各アクセス権限の数値を合計した属性値は必ず1通りしかありません。
例えば、「5」になるのは「4+1」しかありません(他の数の合計では作れない)。
これは、各アクセス権限の数値(4,2,1)が二進法をもとにしているからです。
ちなみに、「5」を二進法で書くと「101」となり
左から順に、読み込み,書き込み,実行 として、1=オン,0=オフ と見れば
書き込み,実行 の2つがオンだと分かります。
(二進法の仕組みはこちらのサイトが分かりやすいです)
よく使われるパーミッションの設定
755ディレクトリに使われます。
共用サーバではグループの全権限を禁止した「705」推奨。
ユーザ | グループ | その他 | |
[r]読み込み(4) | ○ | ○ | ○ |
[w]書き込み(2) | ○ | × | × |
[x]実行(1) | ○ | ○ | ○ |
記号 | rwx | r-x | r-x |
属性値 | 7 | 5 | 5 |
644
HTML,画像,CSS, JavaScript 等の静的ファイルに使われます。
共用サーバではグループの全権限を禁止した「604」推奨。
ユーザ | グループ | その他 | |
[r]読み込み(4) | ○ | ○ | ○ |
[w]書き込み(2) | ○ | × | × |
[x]実行(1) | × | × | × |
記号 | rw- | r-- | r-- |
属性値 | 6 | 4 | 4 |
606
書き換えが必要なデータファイルに使われます。
書き換えがユーザとして実行される環境なら「600」推奨。
ユーザ | グループ | その他 | |
[r]読み込み(4) | ○ | × | ○ |
[w]書き込み(2) | ○ | × | ○ |
[x]実行(1) | × | × | × |
記号 | rw- | --- | rw- |
属性値 | 6 | 0 | 6 |
705
PHP, Perl 等のサーバプログラムに使われます。
プログラムがユーザとして実行される環境なら「700」推奨。
ユーザ | グループ | その他 | |
[r]読み込み(4) | ○ | × | ○ |
[w]書き込み(2) | ○ | × | × |
[x]実行(1) | ○ | × | ○ |
記号 | rwx | --- | r-x |
属性値 | 7 | 0 | 5 |
600
直接実行されないライブラリ(PHP, Perl 等)に使われます。
ユーザ | グループ | その他 | |
[r]読み込み(4) | ○ | × | × |
[w]書き込み(2) | ○ | × | × |
[x]実行(1) | × | × | × |
記号 | rw- | --- | --- |
属性値 | 6 | 0 | 0 |
共用サーバを使う場合の注意
安価なレンタルサーバは1台のサーバを複数のユーザで共用しています。
共用している他のユーザは
パーミッションでの「グループ」に当たります。
つまり、共用サーバではセキュリティ強化のため
「グループ」に一切の権限を与えないのが基本です。
サーバによっては
PHP がセーフモードで実行されることがあり
思ったように動かないことがあります。
PHPファイルのパーミッションを緩めると
セーフモードでも動きますがこの解決法はダメ!
CGI動作させる方法を使いましょう。
PHP をCGI動作させると
サイト閲覧者がPHPファイルにアクセスしても
PHP を実行するのは「ユーザ」と見なされるため
セーフモードになりません。
この場合、PHPファイルのパーミッションは「700」でOK。
PHP をCGI動作させる方法については
各サーバ会社のマニュアルを参照しましょう。
記事作成にあたり下記サイト様を参考にさせて頂きました。
ありがとうございました。
→ パーミッションについて - siriasu.net様
→ パーミッションとは? - InternetMIE様
→ セーフモードの束縛 - hiromasa.zone : o)様
→ ノンプログラマーのための WordPress セキュリティ入門 - firegoby様
【2013/09/05】一部改訂、追記しました。
<< 前へ | サーバ管理って難しい(6) | 次へ >>
サーバ管理って難しいTOPへ
