新ブログの該当記事に転送中です。
少々お待ち下さい。
(転送しない場合は下記リンクへお進み下さい)

『パーミッションを管理しよう』
https://at.sachi-web.com/blog-entry-410.html

このブログのはてなブックマーク数 このエントリーをはてなブックマークに追加

知らなきゃ絶対損するPCマル秘ワザ

知らなくて損したPC情報とかを分かりやすくメモする個人ブログ。
『月,水,金』の週3回更新!(予定)

パーミッションを管理しよう

このエントリーをはてなブックマークに追加
サーバ管理って難しい(6)
パーミッション イメージ
素材提供:写真素材 足成


こんにちは、さち です。

先日、ブログの総アクセス数が100万を突破しました!
これもブログを見て下さっている皆様のおかげです。
本当にありがとうございます。

これからも200万アクセスに向けて頑張っていきます。
「知らなきゃ絶対損するPCマル秘ワザ」をよろしくお願いします。


今回は久しぶりにサーバ管理に関する記事です。
パーミッション属性)は勉強したつもりだったのですが
最近色々と苦労をしたのでまとめておきます。



パーミッションって何?

ウェブサイトの基本「HTML」「CSS」
画像の「JPEG」「PNG」「GIF」
音楽の「MP3」「AAC」
サーバ上で動くプログラム「PHP」「Perl」

それぞれのファイルには利用目的があります。
中には、セキュリティ上
サイトに来た一般の人に見られては困るものもあります。

この問題を解決するのが「パーミッション」です。
「パーミッション」とは、簡単に言うと
サーバ上にあるファイルへのアクセスを制限する機能です。



管理する人は3種類

管理する人たちは全部で3種類に分かれています。

■ユーザ(User)
サーバにログインできる人。つまり、サイトの管理人である自分。
オーナー、所有者 と呼ばれることも。

■グループ(Group)
ユーザと同じサーバを使っている他の人。
共用サーバの場合、ユーザ(自分)と同じサーバを使う他のユーザ。

■その他(Others)
上の2つ以外の人。つまり、サイトを見に来る一般の人。


一番気をつけて管理をしないといけないのは
やはり、「その他(サイトを見に来る人)」ですね。



アクセス権限の管理は3つのスイッチで

アクセス権限の管理は3種類に分かれています。
それぞれの 記号、数値 については後述します。
(「ディレクトリ」とは、Windows でいう「フォルダ」のこと)

■読み込み(read)
ファイル: 読み込みを許可するかどうか。
ディレクトリ: 中身の閲覧,検索等を許可するかどうか。
記号は「r」、数値は「4」。

■書き込み(write)
ファイル: 書き込みを許可するかどうか。
ディレクトリ: ファイル作成、削除、パーミッション変更等を許可するかどうか。
記号は「w」、数値は「2」。

■実行(execute)
ファイル: 実行を許可するかどうか。
ディレクトリ: 中にあるファイルへのアクセスを許可するかどうか。
記号は「x」、数値は「1」。


例えば、HTML,画像等の公開するファイルは「読み込み」を許可
データの書き換えが必要なファイルは「書き込み」を許可
PHP, Perl等のファイルは「実行」を許可しておく必要があります。

ディレクトリのパーミッションは
その中にあるファイルにも影響を与えます。

例えば、画像(読み込み:許可)が
ディレクトリ(実行:不許可)に入っているとします。
この場合、ディレクトリ内のファイルにアクセスできないため
画像を読み込むことはできません。



実際の管理

「管理する人(3種類)」と「アクセス権限(3種類)」を紹介しました。
実際にどのように表すのかを見てみましょう。
前項の説明で各アクセス権限には記号と数値がありましたよね。
それを使って表していきます。

例えば、次のような場合どうなるのか見ていきましょう。
ユーザグループその他
[r]読み込み(4)
[w]書き込み(2)××
[x]実行(1)
記号rwxr-xr-x
属性値755

記号は「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)
記号rwxr-xr-x
属性値755

644
HTML,画像,CSS, JavaScript 等の静的ファイルに使われます。
共用サーバではグループの全権限を禁止した「604」推奨。
ユーザグループその他
[r]読み込み(4)
[w]書き込み(2)××
[x]実行(1)×××
記号rw-r--r--
属性値644

606
書き換えが必要なデータファイルに使われます。
書き換えがユーザとして実行される環境なら「600」推奨。
ユーザグループその他
[r]読み込み(4)×
[w]書き込み(2)×
[x]実行(1)×××
記号rw----rw-
属性値606

705
PHP, Perl 等のサーバプログラムに使われます。
プログラムがユーザとして実行される環境なら「700」推奨。
ユーザグループその他
[r]読み込み(4)×
[w]書き込み(2)××
[x]実行(1)×
記号rwx---r-x
属性値705

600
直接実行されないライブラリ(PHP, Perl 等)に使われます。
ユーザグループその他
[r]読み込み(4)××
[w]書き込み(2)××
[x]実行(1)×××
記号rw-------
属性値600



共用サーバを使う場合の注意

安価なレンタルサーバは
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へ





このエントリーをはてなブックマークに追加




ブログ移転に伴い、コメント受付は終了しました。



記事別の週間アクセス数ランキングです。こちらの記事もぜひ読んでみて下さい。

2008-2019 知らなきゃ絶対損するPCマル秘ワザ  無断転載禁止

ブログパーツ