制作者の活動(PR)。

堀北真希ちゃんにうさみみを着けた擬獣化キャラクタ。次
主な作品

堀北真希うさぎ(うさ耳女子大生):昔のボシュロム『オプティマ』CMを真似たソフトコンタクト装着場面と仮想CM動画

パーミッションの設定。

幾つもの手続きを経てCGIをサーヴァに設置しても、そのままではまだ動きません。

また、動いたとしてもセキュリティ上問題があるかも知れません。

そこで設置後の最後の仕上げとしてパーミッション(属性とも言います)の設定が必要になります。

パーミッションの設定・目次。

パーミッションとは。

サーヴァは大抵複数のユーザで共有します。他のユーザが自分の設置したリソースやディレクトリを勝手に改竄したり削除されると問題ですよね。

そこで、例えば「自分は読書き自由だけど、他の人は書換禁止」などと言うように、全てのディレクトリやリソースに制限をつける必要があります。

この制限を表わすのがパーミッションと言うものです。

具体的には、オーナ(当該リソースやディレクトリの持ち主),グループ(同じサーヴァを利用している他のユーザ)そしてノーボディ(第三者)に対して、それぞれ読み出し・書き換え・実行の可否を指定します。

パーミッションの値は、九桁の記号で表わされますが、しばしば三桁の数字で表わされもします。

九桁の記号の場合、左から三桁毎に、三桁の数字の場合は左から一桁毎にそれぞれオーナ・グループ・ノーボディの値を表わします。

パーミッションの記号の意味。

記号表記の場合。

記号表記の場合、三桁で一組となります。

左端の桁
読出し可能なら「r」、読出し禁止なら「-」となります。「r」になっていれば読出す事が出来ます。
中央の桁
書換え可能なら「w」、書換え禁止なら「-」となります。「w」になっていれば書換えたり削除したりする事が出来ます。
右端の桁
リソースの場合
プログラムとして実行することが可能なら「x」、実行できないなら「-」となります。「x」になっていればCGIとして実行する事が出来ます。
ディレクトリの場合
ディレクトリ内にアクセスすることが可能なら「x」、内部へのアクセスを禁止するなら「-」となります。「x」になっていれば内部にアクセスすることが出来ます。

数字表記の場合。

数字表記では、以下のようにして計算します。

  1. 記号表記での左端の桁が「r」なら4、「-」なら0とします。
  2. 続いて、記号表記での中央の桁が「w」なら2を足します。
  3. 最後に、記号表記での右端の桁が「x」なら1を足します。

例えば「6」なら4+2ですから記号で言えば「rw-」、すなわち読出しと書換えができることになります。

パーミッションの設定方法。

パーミッションはオーナであれば自由に変更できます。

テルネットかFTPソフトにパーミッション変更の機能がありますので、それを用いて設定します。

他者アクセスの危険性。

ノーボディの不正アクセスの可能性。

ノーボディ(第三者)は通常ブラウザを用いてHTTPなどを通じてアクセスすることしかできませんが、実際には、Perl言語で作ったスクリプトを用いる事で、書込可能なコンテンツを改竄する事が可能ですので、油断は出来ません。

もちろん、ノーボディに読出しを許した場合は機密ファイルでも閲覧される危険性があります。

グループによる不正アクセスの可能性。

グループはノーボディより危険です。

グループはFTPソフトなどを用いてログインした後、ディレクトリ移動で他者のディレクトリを開けます。

その結果、パーミッションの設定に依っては簡単に閲覧・削除・改竄ができる事になります。

グループには特に注意しましょう。グループへのパーミッションは一律「---」つまり「0」でいいくらいです。特にグループの書込みは絶対に許可してはいけません

CGIスクリプトの立場。

CGIスクリプトは大抵は実行中に他のデータファイルを読書きする訳ですが、CGIスクリプトはどのような立場になるのでしょうか。

CGIスクリプトは原則としてノーボディ(第三者)扱いとなります。

つまり、第三者が読書きできるファイルでないと、CGIスクリプトは読書きができないと言うことになります。

このことはセキュリティ上大変危険ですね。CGIだけが読書きできればいいファイルやCGI以外がアクセスすると困るファイルを第三者も読書きできるようにしなければならない訳ですから。

このため、現在では多くのサーヴァがCGIスクリプトに限りオーナ扱いとする仕様にしております(この機構をSuExec(スー・エグゼック)と言います)。この場合はオーナの読書きだけ可能にすれば良く、第三者の読書きを許可する必要が無くなるため、セキュリティが大幅に向上します。

実際に求められるパーミッション。

さて、実際にCGIを設置する場合、サーヴァの設定などもあるので一概には言えませんが、以下の値が好ましいです。

CGIスクリプト。

この場合、オーナは読書き・実行とも可能で無いといけません。

依って、多くの場合「rwxr-xr-x」すなわち「755」としないといけないとされております。

しかしながら、上述の通り、グループはアクセス不可にすべきです。

また、ノーボディにも余計なアクセス権限を与えない方が安全です。

以上よりCGIスクリプトには「rwx------」つまり「700」とするのが望ましいのです。

ライブラリスクリプト(CGIとして直接呼出さず、CGIが実行時に呼出すスクリプト)。

CGIとして呼出さないので、読出しできれば問題ありません。

依って「rw-r--r--」すなわち「644」としないといけないとされております。

しかしながら、できればグループやノーボディにはアクセスさせない方が安全でしょう。

従って、ライブラリスクリプトは「rw-------」つまり「600」とするのが望ましいのです。

CGIが読込むデータファイル。

これもCGIスクリプトが読出せればいいので「rw-------」つまり「600」とするのが望ましいのです。

特にパスワードなどの機密情報を収めたファイルはノーボディに見られると問題なのでアクセスできないようにしましょう。

CGIが読書きするデータファイル。

これもCGIスクリプトが読書きできればいいので「rw-------」つまり「600」とするのが望ましいのです。

CGIを収めたディレクトリ。

当該ディレクトリを見られるようにする必要が無い限り、ノーボディは読出しの必要は無い筈です。

つまり当該ディレクトリ内に入れればいい訳です。

つまり「rwx-----x」つまり「701」とするのが望ましいのです。

更にセキュリティを向上させる為には。

CGIを設置するディレクトリには「index.html」ファイルを設置しましょう。

こうしないと、CGIの設置ディレクトリを第三者がアクセスしてきた場合にディレクトリ内のファイルの一覧を表示してしまう事があります(セキュリティを意識したサーヴァならエラーにしてくれるところもありますが)。機密ファイルがその中にあると後は簡単に覗かれてしまうでしょう(もちろん、パーミッションにも依りますが)。

「index.html」ファイルがあれば、自動的にデフォルトリソースとしてそれが表示されます。

しらぎくのウェブサイト作成入門サイトマップ

ページ外へのご案内。

marguerite.site@gmail.com