□Perl 講座 超初級編 > パーミッション(行動権)の意味と設定

◆パーミッションってなに?

どこの、CGIスクリプト配布サイトでも、必ず『パーミッション』という言葉が出てきます。もちろん簡単に説明しているところから、知っていることを前提に説明しているサイトと様々です。どちらかと言うと後者の方が多いのではと思いますので、概略だけですが説明しておきます。
簡単にとは言え、始めての人は読んでも良く解らないかもしれませんので、ある程度慣れてから読むのも手かもしれません。面倒な方や、後でという人は下の良く用いられる設定から、読んでいただいて結構です。

殆どにサーバは複数のユーザの利用を前提としています。ですからそのような環境で、自分が使用(利用)している、ディレクトリ(フォルダ)やファイルを他人に、黙って見られたり、改ざん・消去されてしまう可能性があるのです。ですから、ディレクトリやファイルに対する操作を制限するためのアクセス権が必要になります。そのアクセス権の設定を『パーミッション』と呼びます。

ディレクトリやファイルの属性である『モード』を使って管理していくわけですが、UNIXやNTなど、OSによってパーミッションの仕組みが違います。UNIXの場合でのパーミッションを説明します。

パーミッションは、ユーザ・グループ・その他の3つの対象に行われます。
■ユーザ(u)
ディレクトリやファイルの所有者のこと。パーミッションの設定・変更はユーザのみ可能。
■グループ(g)
UNIXを利用できるユーザは、ある『クループ』に属するように設定されています。(複数の場合も有)
■その他(o)
指定したユーザやグループ以外のこと。その他の利用者全て。
権限の内容は3つあり、権限が無い場合は、『-』で表します。
  1. r(read):読む
  2. w(write):書く
  3. x(execute):実行する
通常のHTMLの場合、プログラムの実行や書き込みはありませんから、デフォルトの設定は読み込みのみ許可されています。ですが、CGIを使う時ファイルへの書き込み・読み込み・実行をさせるわけですから、このパーミッションの設定を行うわけです。但し、プロバイダ等によっては、セキュリティの意味から、自由に変更を出来ないようにしているところも有りますので、各サーバ管理者に確認を取りましょう。

パーミッションの変更をする際にPerlではchmod関数を用います。この関数はパーミッションを8進数で表したものを使用します。
  ユーザ グループ その他
-(権限なし) 0 0 0
x(実行) 1 1 1
w(書き込み) 2 2 2
r(読み込み) 4 4 4

これらを使ってセキュリティを管理していきます。



◆よく用いられる設定

皆さんがカウンタやCHAT・BBSなどの、CGIスクリプトを設置する上でもっとも良く使われる設定をご案内しておきます。ある程度慣れてきたらセキュリティの事も考慮しながら設定していくといいでしょう。

パーミッション 拡張子 説明
777 フォルダ CGIスクリプトやログファイルなどを格納するフォルダの設定です。書込みできる設定ですから、所定の位置に設置するか、CGIスクリプト・ログファイルなどと、通常のhtmlファイルは別にしておいた方がいいでしょう。
755 .cgi .pl CGIスクリプト本体の設定です。サーバによって拡張子が.cgiまたは.pl出ないとCGIスクリプトと判別してくれませんので気をつけてください。どちらかと言うと.cgiにしておいた方が無難なケースが多いようです。
666 .txt .dat .log カウンタやBBSやCHATなどの書き込みを必要とするファイルに対して設定します。拡張子は様々です。ログを記録するためのファイルです。
644 .htm .html .pl デフォルトの設定。普通に読み込ませるだけのファイルはこのままでいいでしょう。あと、.plでもライブラリとして読み込み専用ファイルもありますので、そういったファイルは755にする必要はありません。

パーミッションの変更作業方法は色々有りますが、まずはCGIスクリプトを設置を目指すということで、FTPソフトを用いた変更方法を次のページにて簡単に説明していきたいと思います。

□超初級編 まず始めに・・・。