ファイル転送~パーミッション
- パーミッションとは
- パーミッションの変更方法
- パーミッションを変更しなければならないケース
- 権限の種類
- パーミッションの表記 (アルファベット)
- パーミッションの表記 (数字)
- 設定するパーミッションの値
- パーミッションによるセキュリティの確保
1. パーミッションとは
パーミッションとは、ファイルやディレクトリに対するアクセス権限のことです。
ホスティング エースのサーバーで使用されているOS(UNIX系OSのLinux)はもともと1台のコンピュータを複数人で共用する事を想定して設計されているため、自分以外の使用者に自分のファイルを不正に操作されないために、ファイルに対してアクセスの権限を設定する事が出来る様になっています。権限が与えられていない使用者はそのファイルにアクセスする事が出来なくなります。
ホスティング エースのサーバーも1台のコンピュータを複数のお客様で共用してご利用頂く仕組みになっておりますので、パーミッションの設定が正しく行われていないとファイルの内容を不正に見られたり書き換えられたりしてしまう可能性が生じます。以下の説明をよくお読み頂き、正しいパーミッションを設定してご利用下さい。
2. パーミッションの変更方法
パーミッションの変更はFTPで行います。Telnet/SSHでサーバーに接続することはできませんので、UNIXのchmodコマンドを入力してパーミッションを変更することは出来ません。
3. パーミッションを変更しなければならないケース
パーミッションを変更する必要があるのは、主にCGIを使用する場合です。HTML・画像ファイル等の場合はアップロード後のデフォルトのパーミッション(640)のままで差し支えありませんので、変更する必要はありません。
4. 権限の種類
パーミッションの設定では、そのファイルの所有者(Owner)・そのファイルの所有者と同じグループに属しているユーザ(Group)・その他の第三者(Other)のそれぞれに対し、ファイルの内容を読み取る権限(Read)・ファイルに内容を書き込んだり削除する権限(Write)・ファイルをプログラムとして実行する権限(eXecute)を個別に設定する事が出来ます。
例えば、所有者のみに読み取り(Read)・書き込み(Write)・実行(eXecute)の権限を与え、同じグループに属しているユーザや第三者に一切の権限を与えない状態を表にすると以下の様になります。
(表1)
所有者(Owner) | グループ(Group) | 第三者(Other) | |
---|---|---|---|
読み取り(Read) | ○ | - | - |
書き込み(Write) | ○ | - | - |
実行(eXecute) | ○ | - | - |
別の例として、所有者に読み取り(Read)・書き込み(Write)の権限だけを与え、同じグループに属しているユーザや第三者には読み取り(Read)の権限だけを与える状態を表にすると以下の様になります。
(表2)
所有者(Owner) | グループ(Group) | 第三者(Other) | |
---|---|---|---|
読み取り(Read) | ○ | ○ | ○ |
書き込み(Write) | ○ | - | - |
実行(eXecute) | - | - | - |
5. パーミッションの表記 (アルファベット)
パーミッションにはアルファベットと数字の2通りの表記方法があります。アルファベットで表記する場合は、9桁のアルファベットで表記します。
アルファベット表記の場合は、以下の様に左の3桁が所有者、中央の3桁がグループ、右の3桁が第三者に対してのアクセス権を表します。例えば、所有者・グループ・第三者のすべてに読み取り(r)・書き込み(w)・実行(x)の権限を与えた状態は rwxrwxrwxと表記します。
対象のユーザ | 所有者 | グループ | 第三者 |
---|---|---|---|
パーミッションの表記 | r w x | r w x | r w x |
rは読み取り(Read)のr、wは書き込み(Write)のw、xは実行(eXecute)のxです。アルファベットが書かれている場合は、該当する桁の部分にアクセス権限が与えられている事を意味します。
アクセス権限が与えられていない場合は、その部分のアルファベットを「-」に変えて表記します。例えば、上記の(表1)の状態は所有者のみに読み取り(r)・書き込み(w)・実行(x)の権限を与え、グループと第三者にはすべての権限を与えていませんので rwx------と表記します。
対象のユーザ | 所有者 | グループ | 第三者 |
---|---|---|---|
パーミッションの表記 | r w x | - - - | - - - |
同様に(表2)の状態は所有者のみに読み取り(r)・書き込み(w)の権限を与え、グループと第三者には読み取り (r)の権限だけを与えていますので rw-r--r--と表記します。
対象のユーザ | 所有者 | グループ | 第三者 |
---|---|---|---|
パーミッションの表記 | r w - | r - - | r - - |
6. パーミッションの表記 (数字)
パーミッションを数字で表記する場合は、3桁の数字で表記します。
数字はアルファベット表記のrを4、wを2、xを1、-を0と数え、対象のユーザごとにその数を合計したものになります。 例えば、アルファベット表記で rwxrwxrwx の状態は数字表記で 777 と表記します。
対象のユーザ | 所有者 | グループ | 第三者 |
---|---|---|---|
アルファベット表記 | r w x | r w x | r w x |
数字表記 | 7 (4+2+1) |
7 (4+2+1) |
7 (4+2+1) |
(表1)の状態はアルファベット表記で rwx------ですので、数字表記では 700 となります。
対象のユーザ | 所有者 | グループ | 第三者 |
---|---|---|---|
アルファベット表記 | r w x | - - - | - - - |
数字表記 | 7 (4+2+1) |
0 (0+0+0) |
0 (0+0+0) |
(表2)の状態はアルファベット表記で rw-r--r--ですので、数字表記では644となります。
対象のユーザ | 所有者 | グループ | 第三者 |
---|---|---|---|
アルファベット表記 | r w - | r - - | r - - |
数字表記 | 6 (4+2+0) |
4 (4+0+0) |
4 (4+0+0) |
7. 設定するパーミッションの値
ホスティング エースのサーバーでは、パーミッションを以下の値に設定してご利用下さい。
設定する値 | 一般的な値(参考) | |
---|---|---|
お客様が作成したディレクトリ | 750 ( rwxr-x--- ) | 755 ( rwxr-xr-x ) |
HTML・画像ファイル等 | 640 ( rw-r----- ) | 644 ( rw-r--r-- ) |
CGIの実行ファイル | 700 ( rwx------ ) | 755 ( rwxr-xr-x ) |
CGIのデータファイル | 600 ( rw------- ) | 666 ( rw-rw-rw- ) |
.htaccessファイル | 640 ( rw-r----- ) | 644 ( rw-r--r-- ) |
.htpasswdファイル | 640 ( rw-r----- ) | 644 ( rw-r--r-- ) |
他サーバーの一般的な値とは若干異なる値を設定して頂く必要がございますので、ご利用になるCGIのマニュアルやドキュメントに一般的な値が記載されている場合もそちらに記載されている値ではなく「設定する値」の欄に書かれている値を設定して頂く事をお勧め致します。
なお、初期状態でサーバー上に作られているディレクトリのパーミッションはオンラインマニュアルディレクトリ構造に記載されています。これらのディレクトリのパーミッションは変更せずにそのままの状態でご利用下さい。
8. パーミッションによるセキュリティの確保
パーミッションが適切な値に設定されていないと、ファイルの内容を不正に見られたり書き換えられてしまう 可能性が生じます。セキュリティを高めるための最も基本的な方法は、不要なアクセス権限を与えない事です。特にホスティング エースのサーバーの場合、第三者(Other)に対してアクセス権を与える事はセキュリティの低下につながります。
もともと不特定多数の人に公開する目的で設置するHTMLファイルや画像ファイルであればファイルを転送した時点で自動的に設定される 640 ( rw-r----- ) のままで差し支えありませんが、CGIのデータファイルなど直接内容を参照・変更されたくないファイルの場合は「設定するパーミッションの値」に書かれている値を設定してご利用頂くことをお勧めいたします。