Perl CGIテストチェック事項を確認した上で、もし、ブラウザ上でCGIスクリプトの実行結果が、正しく表示されなかった場合には、CGIファイルに対する一定の権限における許可設定をしてあげる必要がある場合があります。
ファイルアクセスの許可設定をパーミッション設定と呼ぶことがあります。
つまり、「パーミッション」とは、「許可」という意味であり、許可されるということは、一定の権限を与えられるということと同義であることから「権限付与」といった表現がなされるケースもありますが、本来の意味としては前述の通りです。
ちなみに不特定多数がアクセスするデータベースの操作を個別に制限する方法に「role (ロール)」がありますが、これも権限ではなく、「役割」といった意味合いです。
(ディレクトリについては、若干意味が異なりますが、)ファイルへのアクセスに伴うパーミッションには、以下のように3通りの対象に3通りの許可設定が可能となっています。
・読み取る権限の許可 >> read >> r >> 4
・書き込む権限の許可 >> write >> w >> 2
・実行する権限の許可 >> excute >> x >> 1
・user >> u >> ファイル作成者
・group >> g >> Webサーバ上の同じスペースを共有している人
・other >> o >> その他のみんな
具体的には、読み取り/書き込み/実行という3通りの許可をユーザー/グループ/その他の3通りに対して設定することが可能となっています。
また、 r/w/x には、それぞれ 4/2/1 という数値が割り当てられており、許可設定の割り当て状況は、その数値の加算結果と同じであり、全部足した 7 ( 4+2+1 / rwx )の場合、全て許可されている状態、6 ( 4+2 / rw- )は、読み書き可の状態、5 ( 4+1 / r-x )は、読み取りと実行可の状態をそれぞれ表します。
よって少なくとも実行する必要のあるメインのCGIスクリプトにおいては、ファイル作成者である user / u には、 7 ( 4+2+1 / rwx )が設定されている必要があるということになります。
group / g は、不要なら 0 ( --- ) 、必要ならそれに応じて設定します。
また、ファイル作成者、サーバ上の同じグループ以外の1人以上、または不特定多数の利用者を想定する場合には、other / o に 1 ( 1 / r )、3 ( 2+1 / -wx )、5 ( 4+1 / r-x )、更に極力回避すべきですが、 7 ( 4+2+1 / rwx )を必要に応じて設定することになります。
尚、レンタルサーバを利用している場合には、各レンタルサーバごとにCGIスクリプト用のパーミッション設定に一定の制限がある場合があり、その場合、それを設定します。
ちなみにフリーまたは有料のCGIスクリプトの完成品をサーバに設定する場合、CGIスクリプト自体に推奨パーミッションが明記されている場合もあるでしょうが、それを動作させるのは、サーバの環境なのでサーバに一定の制限がある場合、当然のことながらサーバの設定を優先しなければいけませんが、それにより場合によっては、入手したCGIスクリプトを利用できない可能性もゼロではないので入手する前にサーバの仕様と見比べて検討するのが賢明です。