ディレクトリとファイルのパーミッション(権限)の意味についてディレクトリとファイルのパーミッションネットビジネスでレンタルサーバーにソフトウェアをインストールする時、パーミッション(権限)を設定することがあります。パーミッションとは何なのか、どういった意味があるのか、正しく設定しないことの脅威を説明します。ファイルは誰の物かインターネット関連のサーバーに多く採用されているUNIX系OSでは、ディレクトリやファイルは誰の物であるのかを明確に区別します。所有者本人(User、Owner)所有者と同じグループ(Group)その他(Others)の関係の人に与えられた権限、これがパーミッションです。実生活に置き換えてみます。日記:見ていいのは自分(所有者)だけ、他人(その他)は勿論家族(所有者と同じグループ)も見ちゃ駄目、プロジェクトの資料:見たり読んだりしてよいのは自分(所有者)を含めたプロジェクトメンバー(所有者と同じグループ)、チラシ:どんな人にも見て欲しい、このような設定をディレクトリやファイルに行うのです。所有者UNIXサーバーにログインしてディレクトリやファイルを作ったり、FTPからディレクトリやファイルをアップロードした場合、通常所有者は操作を行っているユーザーアカウントになります。PHPやPerlなどのスクリプトからファイルを作った場合、そのスクリプトがどの実行権限で動かされているかで所有者が変わってきます。実行権限がWebサーバーなら作成されたファイルの所有者はWebサーバーに、実行権限がユーザーならユーザーに設定されるのが通常です。所有者と同じグループ所有者は1つ以上のグループに含まれています。グループの範囲はレンタルサーバーに拠ります。同じサーバーに属するアカウントが1つのグループになっている場合もあるようです(この場合見知らぬ赤の他人が同じグループになります)。レンタルサーバーの場合、所有者と同じグループには権限を与えない設定で大丈夫ですが、レンタルサーバーによってはcron設定に関係してきます。cronをサポートしているサーバーならマニュアルにパーミッション値が書いてあるはずなので参照してください。その他その他はWebページの訪問者(正確にはWebサーバーソフトウェア、Apahceのことが多い)など第三者です。ファイルの所有者でもブラウザからファイルにアクセスする場合はその他になります。ファイルパーミッションの設定値パーミッションはアルファベットあるいは数字で設定します。最初によりわかりやすいアルファベットでの表記について書きます。【r】【w】【x】【-】の4つの文字を使って表します。r:読み込みw:書き込みx:実行-:権限を与えないという意味になります。読み込み、実行権限を与えるなら、【r-x】となります。3文字をひとかたまりとして、左から所有者、所有者と同じグループ、その他の順番で表します。読み込み、の権限を与えるという意味です。次はパーミッションを数字での表記について書きます。4:読み込み2:書き込み1:実行0:権限を与えないとなります。数字で表す場合は、更に数字を足し合わせます。1+2と区別がつかなくなってしまいますので。読み込み、書き込み権限を与えるなら、【6】(4+2)読み込み、書き込み、実行権限を与えるなら、【7】(4+2+1)読み込み、実行権限を与えるなら、【5】(4+1)となります。アルファベット形式と同じように、左から、所有者、所有者と同じグループ、その他の順に表記します。読み込み、の権限を与えるという意味です。ディレクトリパーミッションの設定値ディレクトリの場合も表記方法は同じなのですが、権限の意味がファイルと少し違っています。r:ディレクトリ内に何のファイルがあるのか取得する権限w:ディレクトリ内のファイルの追加、削除、リネーム、パーミッションを変更する権限x:ディレクトリに移動する権限(この権限がないとディレクトリ内のファイルの所有者やサイズなどの情報が取得できません)を与えるという意味になります。ディレクトリパーミッションは、下位ディレクトリにも影響を与えます。ディレクトリAの下にディレクトリBがあるとします。ディレクトリAのパーミッションで自分に実行権限を与えていない場合、ディレクトリBで実行権限を与えてもディレクトリBの下にあるファイルを実行できません。パーミッション604の場合、ファイルBを実行できません。スクリプトファイルのパーミッションレンタルサーバーにいくつかソフトウェアをインストールされたことがある方なら、ここまでお読みになって「あれ?Perlのスクリプトファイルにはパーミッション設定したけれど、PHPのスクリプトファイルにはパーミッション設定をしたことはないな。」と思われたかもしれません。PHPファイルは【644】など、実行権限がない設定になっているかもしれません。これはWebサーバーから動かすPHPが特殊、と思ってください。普通は【755】など実行権限を与える設定にします。Perlなどは実行権限を設定しているはずです。Webサーバーではなく、cronからPHPを動かす場合は、実行権限のあるパーミッションを設定しないといけません。cronをサポートしているサーバーならマニュアルにパーミッション値が書いてあるはずなので参照してください。外部へ漏れてはいけないファイルは権限を与えない設定をWebサーバーに外部から書き込みはおろか、読み込み(閲覧)すらできてはいけない大切なファイルを置くことがあります。この場合、ディレクトリやファイルのパーミションを正しく設定しないと大切な情報が丸見えになってしまいますのでご注意ください。所有者がユーザーのファイルに、パーミッション【600】(【rw-------】)と【604】(【rw----r--】)を設定してリンクを貼っておきます(ディレクトリパーミッションは【755】です)。どのような振る舞いをするか試してみてください。Forbidden(アクセス禁止)エラーが出でアクセスできません。アクセスできるのでファイルの中身が見えます。RSS1.0RSS2.0ATOMWebサイト運営の手間を省力化。痒いところに手が届くツールを紹介します。Reserved.ステップメールシステム、全自動アフィリエイトシステム、各ページ共通メニューの簡単表示など、ネットビジネス運営に役立つ便利なソフト、アクセスアップに役立つツールを紹介しています。ネットビジネス便利ツール。