***HPクリエイターのためのCGI講座 第33回***
1.パーミッション

演習問題がここのページにあります。
来週中を目標に完成させてください。
(解答も同じページにありますが、まずは、自分自身でチャレンジしてくださいね)

本講座の講習用サーバーはLinuxです。
したがって、UNIX系のサーバーを前提に話を進めていきます。
(その他、NTサーバー等の話題は扱いません)

CGIプログラムをサーバーで実行させるには、HTMLファイル(index.htmlなど)と違い、ファイルをサーバーへコピーするだけでは、動きません。
コピーしたファイルのパーミッションを変更しなければなりません。
パーミッションとは、ファイルやディレクトリ(ウィンドウズではフォルダと呼ばれている)の属性のようなもので、そのファイルへのアクセス権を決めます。

<パーミッションの定義>
オーナー、グループ、その他の順に、読み込み/書込み/実行の権限を定義します。

オーナー= 自分のこと
グループ= UNIX系サーバーの場合グループの定義もできますが、通常は無視してもらって結構です(その他と同じ扱いで良い)
その他 = 不特定多数の人

オーナー グループ その他
w x r w x r w x
アクセスモード一覧
モード 数値 アクセス内容
4 読み出し可能
2 書込み可能
1 実行可能
- 0 不許可

<記号と数値の関係>
rwxr--r--の場合(4+2+1)(4+0+0)(4+0+0)=744
rwxr-xr-xの場合(4+2+1)(4+0+1)(4+0+1)=755

このように、数値でパーミッションを表す場合もあります。

パーミッションの定義例 解説
記号 数値 オーナー グループ その他
読込み 書込み 実行 読込み 書込み 実行 読込み 書込み 実行
rwxr--r-- 744 × × × × 自分は全アクセス可能、その他の人は読込みのみ可能
rwxr-xr-x 755 × × 自分は全アクセス可能、その他の人は読込みと実行が可能
rwxrwxrwx 777 全ユーザーで全アクセスが可能

実際のパーミッションの変更は、telnetかftpでおこないます。
演習用サーバーでは、telnetを許可していません。
受講生の皆さんは、FTPでパーミッションの変更をしてください。
フリーウェアのFFFTPでftpを使ったパーミッションの変更方法を載せておきます。

1.転送先のファイルをマウスで右クリックする
2.ポップアップメニューから「属性変更]を選択する
3.パーミッションを変更する

解説だけでは、分かり難いと思います。
過去の演習で使った、CGIプログラムのパーミッションを実行不可にして、CGIプログラムを起動させてみてください。
ブラウザにエラーが表示されるはずです。
<例>
ハローワールドを表示させたCGIプログラムファイルのパーミッションを変更する。
ハローワールドを表示させたCGIプログラムファイルは、下記です。
/var/www/home/edp0/alk/edp_ex/ex_001/perl_ex.cgi
edp0はあなたのユーザーIDに置き換えてください)

このファイルのパーミッションは、755(rwxr-xr-x)です。
これを444(r--r--r--)に変更してください。

実行させると、エラーを表示します。
(実行権が、与えられていないために生じたエラー)


********************************************************************************
講師:ALK alk@arkland.co.jp
運営:アークランド(株) http://www.arkland.co.jp/