ファイル転送~パーミッション
パーミッションとは
パーミッションとは、ファイルやディレクトリに対するアクセス権限です。
TikiTikiホスティングサービスのサーバで使用されているOS(UNIX系OSのLinux)は、もともと1台のコンピュータを複数人で共用することを想定して設計されているため、自分以外の使用者に自分のファイルを不正に操作されないために、ファイルに対してアクセスの権限を設定することができるようになっています。権限が与えられていない使用者はそのファイルにアクセスすることができなくなります。
TikiTikiホスティングサービスのサーバも1台のコンピュータを複数のお客様で共用してご利用いただく仕組みになっていますので、パーミッションの設定が正しく行われていないとファイルの内容を不正に見られたり書き換えられたりしてしまう可能性があります。以下の説明をよくお読みいただき、パーミッションを設定してください。
パーミッションを変更しなければならないケース
パーミッションを変更する必要があるケースは主に以下の2つです。
- CGIを使用する
- 「.htaccess」ファイルを使用する
特に、アクセスカウンタ・フォームメール・掲示板などのCGIは適切なパーミッションを設定しなければ動作しませんので、注意してください。
パーミッション設定の方法
TikiTikiホスティングサービスのサーバ上に置かれているファイルやディレクトリのパーミッションを変更するにはFTPソフトを使用します。サーバにTelnet接続を行うことができませんので、TelnetでUNIXコマンド(chmod)を使用してパーミッションの変更を行うことはできません。
FTPソフトごとの具体的な設定の方法は オンラインマニュアル - [ファイル転送] FTPソフトの設定 のページを参照してください。このページに掲載されていないFTPソフトをお使いの場合は、ソフトのマニュアルを参照してください。
権限の種類
パーミッションの設定では、そのファイルの所有者(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) |
- | - | - |
パーミッションの表記(アルファベット)
パーミッションにはアルファベットと数字の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 - - |
パーミッションの表記(数字)
パーミッションを数字で表記する場合は、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) |
設定するパーミッションの値
TikiTikiホスティングサービスのサーバでは、パーミッションを以下の値に設定してください。
設定する値 | 一般的な値(参考) | |
---|---|---|
お客様が作成したディレクトリ | 705 ( rwx---r-x ) | 755 ( rwxr-xr-x ) |
HTML・画像ファイル等 | 604 ( rw----r-- ) | 644 ( rw-r--r-- ) |
CGIの実行ファイル | 700 ( rwx------ ) | 755 ( rwxr-xr-x ) |
CGIのデータファイル | 600 ( rw------- ) | 666 ( rw-rw-rw- ) |
.htaccessファイル | 604 ( rw----r-- ) | 644 ( rw-r--r-- ) |
他サーバの一般的な値とは若干異なる値を設定していただく必要がありますので、 ご利用になるCGIのマニュアルやドキュメントに一般的な値が記載されている場合も、そちらに記載されている値ではなく「設定する値」の欄に書かれている値を設定していただくことをおすすめします。
なお、初期状態でサーバ上に作られているディレクトリのパーミッションは オンラインマニュアル - [ファイル転送] ディレクトリの構造 のページに記載されています。これらのディレクトリのパーミッションは変更せずにそのままの状態で使用してください。
パーミッションによるセキュリティの確保
パーミッションが適切な値に設定されていないと、ファイルの内容を不正に見られたり書き換えられてしまう可能性があります。セキュリティを高めるための最も基本的な方法は、不要なアクセス権限を与えないことです。特にTikiTikiホスティングサービスのサーバの場合、グループに対してアクセス権を与えることはセキュリティの低下につながります。
もともと不特定多数の人に公開する目的で設置するHTMLファイルや画像ファイルであれば、ファイルを転送した時点で自動的に設定される 644 ( rw-r--r-- ) のままでも差し支えありませんが、CGIのデータファイルなど直接内容を参照・変更されたくないファイルの場合は、グループに対するアクセス権限を与えない 600 ( rw------- )や 604 ( rw----r-- ) の状態に設定してください。