***HPクリエイターのためのCGI講座 第33回***
1.パーミッション
演習問題がここのページにあります。 来週中を目標に完成させてください。 (解答も同じページにありますが、まずは、自分自身でチャレンジしてくださいね) |
本講座の講習用サーバーはLinuxです。
したがって、UNIX系のサーバーを前提に話を進めていきます。
(その他、NTサーバー等の話題は扱いません)
CGIプログラムをサーバーで実行させるには、HTMLファイル(index.htmlなど)と違い、ファイルをサーバーへコピーするだけでは、動きません。
コピーしたファイルのパーミッションを変更しなければなりません。
パーミッションとは、ファイルやディレクトリ(ウィンドウズではフォルダと呼ばれている)の属性のようなもので、そのファイルへのアクセス権を決めます。
<パーミッションの定義>
オーナー、グループ、その他の順に、読み込み/書込み/実行の権限を定義します。
オーナー= 自分のこと
グループ= UNIX系サーバーの場合グループの定義もできますが、通常は無視してもらって結構です(その他と同じ扱いで良い)
その他 = 不特定多数の人
オーナー | グループ | その他 | ||||||
r | w | x | r | w | x | r | w | x |
アクセスモード一覧 | ||
モード | 数値 | アクセス内容 |
r | 4 | 読み出し可能 |
w | 2 | 書込み可能 |
x | 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/