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