CGIの設置に際して避けて通れないにも拘らず、じつはこのパーミッションだけが、今日の時点でも、実はよくわかってないのでした。
例えば、FFFTPなどで、
こんな画面を見れば、実行=1(の位)
書込=2(の位)
呼出=4(の位)
という3ビットの2進数を10進に変換したものが[755]とかの[7]や[5]だというのはわかるのだ。
まあビットなんか考えなくても、単なる足し算で、
CGIファイル・・・実行権(1)+呼出権(4)=5
ログファイル・・・書込権(2)+呼出権(4)=6
てな感じになるのでしょう。・・・が、
はたまた別のFTPソフトなどを見ると・・・、あれっ?
オーナー グループ その他 User Group Other ユーザー グループ その他 オーナー グループ 全員
なんか、びみょーに表現ちがうんスけどぉ・・・???
いちおー、もろもろの情報によると、「グループ」ってのはあんまし気にしないでいいらしい。[755]と指定されたものが[705]でも動くなら、その方がいいらしい。
で、更にあちこちのCGI配布サイトのFAQなどで学習してみると、「その他」とは、要するに「一般の人たち」ということらしい。うむ、これで納得。
では、「僕はオーナーあんたはお客」ってことで、とりあえず仮設置中のCGIは他人に実行されたくないので、パーミッションを[700]ぐらいにしちゃえば、ゆっくりと動作確認が・・・んーん?
オーナーがブラウザでアクセスした時はぁ、わたしはだ〜れ?
という疑問が沸いて来た。
FTPソフトでアクセスする時は、ユーザー名/パスワードを入力してるんで、それがオーナーであることはわかるだろうけれど、ブラウザでアクセスした時は、パスワード認証の窓なんか開かなかったぞ。
うーーん、クッキーとか、なんらかの方法で、それがFTPした時と同じマシンであるかどうかを取得しているのだろうか??いーや、そんなことはあり得ない。(はず)
なわけで、オーナーと言えども、ブラウザでアクセスした時には、一般客と同じってことなのだろう。そうだ、そうだ、そうに違いない。(たぶん)
でも・・・あれ?
オーナー権限があるのはFTPソフトで接続した時だけ?
ウチにあるFTPソフトには、CGIを実行するコマンドってものがないんだけれど・・・そうすると、[755]とかのオーナー権限[7]には何の意味が?
うーん・・・まあ、これは、他のFTPソフトやtelnet接続の時に意味があるのかな?ということで、うやむやに理解しておこう。めでたし、めでたし・・・
以上の勝手な(笑)思い込みを踏まえると、パーミッション[700]では、ブラウザからアクセスする限りオーナーといえどもCGIは動かないはず・・・が、
動いちゃうんだな〜これが(爆)
ってことで、ここまでの推論はすべてふりだしに戻る〜と・・・おしまい。
って・・・んなアホな〜
いーや、老兵(だったのかよ)は死なず!こういう時こそ、各所のFAQを事前に読破しといた労力が報われるときなのだった。
どこだか忘れちゃったんですが、どこかのFAQで、
「サーバーによっては、CGIがオーナー権限で動くので[700]などでも動く場合があります」
と、読んだ記憶があります。
なるほどぉ・・・と、いろいろ試してみると、まさにその通りのようで・・・
例えば、[Web裏技]にあるMiniBBSの場合、
ディレクトリ 作者推奨 お試し /cgi-bin/ /data/ 777 700 ファイル minibbs.cgi 755 700 jcode.pl 644 600 data.cgi 666 600 この「お試し」の方のパーミッションで動いちゃうようです。
ところで、@homepageでは、普通に作成したディレクトリは[755]、ファイルのパーミッションは[644]に、デフォルトでは設定されるようです。
ってことは?、@homepageでは、単純に動くだけでいいのなら、他のファイルやディレクトリのパーミッションは一切意識しないでも、
わけなのでした。
面倒な特殊仕様ばかりが目立つ@homepageにあって、パーミッションだけは、逆に他のサーバーよりも簡単設定だったのです。(でもセキュリティ的にはどうなの?)そしてこれは、ものすごく後になって気付いたことなんですが、ロックファイルを置くディレクトリや、次々とCGIが勝手に作成する過去ログファイルを置くディレクトリのパーミッションは、本来ならば[777]にしておかなければいけないはずが、何も意識しないでデフォルトの[755]のままでOKだったりしたわけです。
そういえば、過去ログを置いた/homepage/方面のディレクトリのパーミッションなんか、気にしたことなかったんですが、珍しく(笑)、@homepage仕様によって救われてたということなのでした。但し、これはあくまで、僕個人がこの文章を書いてる時点の自分の環境で勝手に試した結果であり、@niftyからの案内には「CGIは[755]に」と、あるだけなので、各自のサーバーによって、または将来的にこっそり仕様変更される可能性もあり、@niftyから保証されたものではありませんので、各自の責任において、勘違いのないようにお願いします。
ってコトで、パーミッションについては、@niftyでは逆に自由度が高いためにCGI初心者にとって判りにくいものだったわけですが、CGIファイルに実行権[755]などを与える以外は、ほとんど意識しなくてOKのようです。
ちなみに、この自由さに慣れちゃってると、他のサーバーに設置するときに、思わぬ苦戦を強いられることがあります(笑)。