予備知識


ファイルの属性

UNIXでは、ファイルやディレクトリなどについて、アクセス権を設けてユーザー情報などの 保護を計っています。
自分、自分の所属するあるグループ、他人、というような区分でそれぞれに、読み出し、 書き込み、実行の可否を決めることが出来ます。但し、ディレクトリ対しての実行権は、 そのディレクトリに入る(そのディレクトリをカレントディレクトリにする)ことの可否 になります。

属性で指定する3桁の数値の各桁はそれぞれ、本人、グループ、他人のアクセス権を示しています。

   7       5       5
  本人 グループ その他 
その数値の意味は次のとおりです。

アクセス権限の種類
数値アクセス権
0アクセス不可
1実行のみ可能
2書き込みのみ可能
3実行、書き込みが可能
4読み取り可能
5実行、読み取りが可能
6読み取り、書きこみが可能
7読み取り、書きこみ、実行可能

普段は1、2、3の属性は使いません。 CGIやSSIは常に常に本人が実行するわけではないので、実行ファイルやプログラムが 読み書きするファイルには「その他」にもアクセス権を洗える必要があります。 但し、プログラムが書き込みをするファイル以外には、本人以外に書きこみの権限は 与えないようにしてください。

UNIX上での設定の方法

UNIXのコマンドラインがつかえる場合は、以下のようなコマンドを実行するだけです。 コマンドの細かい使い方は 'man chmod' を実行してオンラインヘルプを参照して ください。
   chmod xxx filename
         ~~~ アクセス権を示す数値
アクセス権の設定例
ファイルの用途設定するアクセス権
html等の読取専用のドキュメントファイル644または444
CGI等の実行ファイル755または555
CGIプログラムが書き込みをするファイル666
自分専用のプライベートなファイル600等
通常のディレクトリ755
CGI等がファイルを作成するディレクトリ777

戻る

もうちょっと知りたい人は・・・

UNIX上のコマンドラインでファイルを参照するコマンド
 ls -l 
を実行すると以下のようなものが表示されます。
-rw-r--r--   1 user   group       1140 Jan 31 14:50 aa
drwxr-xr-x   2 user   group       1024 Feb  4 18:45 cmp
表示された画面で、一番左側にあるのがファイルまたはディレクトリ名です。
一番右に表示されている文字列がそのファイルの属性(アクセス権)です。 その読み方は以下のとおりです(一部細かい説明は省きます)。
           - rwx r-x r-x
           _ ___ ___ ___
           |  |   |   |
           |  |   |   +---- 他のユーザーに対するアクセス許可。
           |  |   +-------- 同じグループに所属するユーザーに対するアクセス許可。
           |  +------------ 自分に対するアクセス許可。それぞれ、意味は次の通り。
           |                       r: リードを許す
           |                       w: ライトを許す
           |                       x: 実行を許す
           |
           +--------------- ファイル種別。各文字の意味は次の通り。
           d: ディレクトリ
           l: シンボリックリンクファイル (他のファイルを示している)
           -: 通常のファイル
ここではアクセス権を数字でなく'rwx'のように3文字で1組のアクセス権を示しています。

この 'rwx' とアクセス権の数字の関係は次のような関係になっています。

アクセス権の文字と数字の関係
文字数字意味
r4 (100)読み込み可能
w2 (010)書きこみ可能
x1 (001)実行可能(ディレクトリの場合は移動可能)
*)数字の()は二進数表示です。

ファイルのアクセス権に複数の文字がある場合はその数値を加えるだけです。
(例:r-x (読み取り、実行可能) ならば 4 + 2 = 6 二進数で 100 + 010 = 110 )

3桁の二進数の意味

2進数は1つの桁に0と1しか数字が置けません。そのことから、特定の位置の桁に 意味を持たせて、その有無を0と1で判断するということができます。
この、アクセス権の場合は、左の桁に書きこみ、真中の桁に読み込み、右の桁に実行、 という意味を持たせてあります。それによって、アクセス権を数値として簡単に 扱うことができます。

アクセス権限の種類
文字数値アクセス権
---0 (000)アクセス不可
--x1 (001)実行のみ可能
-w-2 (010)書き込みのみ可能
-wx3 (011)実行、書き込みが可能
r--4 (100)読み取り可能
r-x5 (101)実行、読み取りが可能
rw-6 (110)読み取り、書きこみが可能
rwx7 (111)読み取り、書きこみ、実行可能
*)数字の()は二進数表示です。

戻る


感想その他は しましままで