これを利用して、さまざまなことをサーバに行なわせることができるわけですが、多くのプロバイダでは ユーザ レベルの CGIスクリプト(プログラム)設置について制限をかけています。
まったく設置を認めていないプロバイダも少なくありません。
また、制限付きで許可しているプロバイダでも CHATプログラム等は サーバへの負荷がとても大きく、許可されない可能性が高いと思われます。
CGIスクリプトは、それ自体 プログラム です。ユーザ全員の共有サーバでプログラムを走らせるわけですから、暴走させたり、ファイルやディスクを破壊したりすることがないようにしなければなりません。
異常な動作によって、そのサーバのユーザ全員(もしかすると全世界)に迷惑がかかる可能性を常に認識しておくべきです。
一般的に、CGIスクリプトは、プロバイダでは頒布しておりません。あなたがセキュリティに配慮したプログラムを書けるならば、あなた自身で用意するか、または 各自 素性の知れた(いわゆる有名な)サイトから、自らダウンロードして入手してください。
なお、Web上で出回っているスクリプトには、SSI (Server Side Include)を使用するものもありますが、SSIはCGIよりも危険と考えられており、ほとんどのプロバイダでは使用を許可しておりません。 (動作させようとしても、もともと動かないように設定されています。CGIも、多かれ少なかれ SSIと同じようなところはあるのですが・・・)。
SSI や CGI は、サーバ上で 各種プログラムを実行させることができます。
つまり、危険なコマンドが実行される可能性があり、作成/設置者がその危険性を認識していなければ、意図しない副作用による障害が発生したり、システム侵入の踏み台とされ、他のサイトのクラッキングに悪用される可能性も大きくなります。
また、中には悪意を持って作成されたものや、セキュリティが甘いスクリプトも存在します。とにかく、十分ご用心を。
perlのプログラムでは、スクリプトの先頭に、設置サーバでの「 perl の PATH 」を記述する必要があります。
この PATH は、サーバによって異なりますが、たいていは「/usr/local/bin/perl」か、「/usr/bin/perl」になっていると思います。
なお、 perlの Version によっては動作できないスクリプトもあります。
perl-5専用に作成されたスクリプトは perl-4では 正常に動作しません。
(まあ、いまどき perl-5がインストールされていないサーバなんて無いとは思いますが)
修正について、スクリプトに付属している README 等の解説ファイルを読んでも「さっぱりわからない」という方は、設置をみあわせてください。
少なくとも、「ここがわからない」というように自分が判らない箇所がどこなのか判る程度には勉強してください。(^^;)
どこが判らないのか判ったら、スクリプトの配布元 または ISPに質問メイルを書きましょう。(当然ですが、ISPは、サーバ側の質問にしか答えてくれません)
また、CGIを動作させるには、必ず「パーミッションの設定」をしなければなりませんが、shellが使えない場合は、FTPソフトで設定することになります。このため、サーバに chmodコマンドを送ることのできるFTPソフト(WS_FTPやWinFTPなど)を使用する必要があります。
一般的に、CGIスクリプトファイル(なんとか.cgi または *.pl)は、パーミッションを 7 5 5 に設定。データファイルの方は 6 6 6 に設定します。これらのパーミッション設定は、絶対間違えないでください。 セキュリティ ホールになる危険性もあります。
また、ディレクトリのパーミッションも重要です。 7 7 7 なんていう誰にでも書き込み可能なディレクトリは非常に危険です。
WebサーバにApacheを使っているのなら、SuEXECという機能を使うことをおすすめします。これで、ユーザディレクトリ外のプログラム実行を止めます。どうしてもsendmailをCGIから呼び出したい場合は、シンボリックリンクなどでsendmailのみ実行可能にします。
どうせshellは解放していないのだから、一般ユーザには /bin/* などのプログラムは実行できないようにしてしまうべきでしょう。
なお、SuEXECは、Apacheのconfigure時にオプション指定しないといけません。