CGIで指定するパーミッションについて | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
CGIプログラム設置に際しては、パーミッション指定が必要です。 これについて記しておきます。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
UNIX系OSでは、複数の利用者が同時にコンピューターにアクセスして、 複数の操作を同時に独立して実行できるように設計されています。(マルチユーザー&マルチタスク処理) サーバー(server)と云うのは、サービスの提供者・給仕人と云う意味ですが、 どのようなアクセスをどのように処理するか、その割り振りを行う装置です。 コンピューターが、会社のビルだとすると、会社にやってきた人をどの部署の誰のところに連れていくか その案内をするのがサーバーの仕事です。 たとえ会社の社員であっても、案内者の指示がなければ自分の席に着くことが出来ません。 サーバーにどの様な仕事をさせるかを決めることが出来るのは一人だけ、つまり社長だけです。 ある人が会社を訪れ、資料がみたいと申し出たとします。 サーバーはその人を図書室に連れていき、閲覧用の席に着くように案内します。 図書室では自由に閲覧できる資料は開架されていますが、 特定の人しか閲覧できない資料は書庫に保管されています。 書庫から本を取りだしてくるのはサーバーの仕事です。 例え同じ会社の社員でも、他の部署の極秘資料を勝手に見ることは出来ません。 サーバーが資料に記されている、誰ならば見せても良いという、記述を確認してから、 希望者に届けます。 この個々の資料に記された許可の記述が、パーミッションに当たります。 パーミッションはファイルやディレクトリに属性として与えられ、ファイル属性とか、ディレクトリ属性と云います。 属性の基本要素は次の4つです。 「読む」 「書く」 「実行する」 「指定無し」 それぞれついて、記号と数値が決められています。
実行すると云うのは、プログラムファイルを実行するとか、ファイルの削除を実行する等という意味です。 属性はこれらの組合せで決められます。
属性は、ファイルの所有者(作成者)、グループ、その他の人、に対して個別に指定されています。 グループというのは、例えば会社のある部署全員(working group)のことです。 ディレクトリ ディレクトリと云うのは、HDDの中では、あるファイルの集合を記述した特殊なファイルです。 ファイルであることに違いはありませんから、普通のファイルと区別するために、 特別な属性の指定を行います。
さて、あるファイルに対してどういう扱いが出来るかと云うことは、以上のことを利用して、 サーバーに知らせます。 「ファイルの種類」+「所有者の権限」+「グループの権限」+「その他の人の権限」
cgiプログラムの設置案内などでよく見る数値表示の意味を、これで理解しておいてください。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
セキュリティ対策 パーミッションの指定は、慎重に行う必要があります。 指定を間違えると、プログラムを書き換えられたり、誤動作したりするからです。 ★グループ指定と云うのは、インターネットへの公開ファイルではあまり意味を持ちません。 従って、上記の場合でも、グループの権限指定を0にしておくと、セキュリティが上がります。 以下のようにパーミッション指定を変更して、変わりなく動作するようであれば、セキュリティ対策になります。
★パーミッション777 時折、この様な属性指定をするように解説しているところがありますが、 上記の意味から解るように777は非常に危険な指定です。 誰でもファイルの書き換えや削除さえも出来るからです。 755又は、705指定に変えるべきです。 ★index.html cgiプログラムを置いているディレクトリには、必ず、index.html という名前のファイルを置いておくようにします。 内容は何でも構いません。 これがない場合、ディレクトリー内部のファイルを全て読みとられてしまいます。 |