|
> ファイルハンドルを指定しなくとも最後に openしたハンドルのみ > クローズされると、思っていたのですが。suidな時、STDOUTまで > クローズされませんか? suidかどうか/httpd経由かコマンドラインか に関わらず、STDOUTが クローズされました。そもそもcloseってファイルハンドルを省略 すべきでないし、仮に省略した場合はselectで指定されたファイル ハンドル(デフォルトはSTDOUT)がクローズされるんじゃないですかね? # perl4、perl5.004で試しました。 > ところで、wrapper.cgiでのurl指定方法のwrapper.cgi/hoge.cgi > は、知ってはいたのですがどういう動作になるのですか? print文を埋め込んで試してみませう ;-) |
|
>suidな時、STDOUTまでクローズされませんか? ホントだぁ...これまた私の勘違い。 いままで作ったスクリプトを見直したら、ちゃんとやってました。 意識していたわけではなく、性格的な問題?からそうしていたの ですが、これって案外重要だったのですね。 この件でのスクリプトでの試験では、安易にそうしていただけでし た。#お恥ずかしい。(*^_^*;;; closeのみだとSTDOUTまでクローズされ、結果スクリプトが終了して しまうのですね。 >パスが通って無いのが原因と判明しました。 よく考えたら、スクリプト内で$ENV{PATH}=''としてるのに、何を 言ってるんでしょう私は。(; ;) でもなんで、$ENV{PATH}=''としなければいけないのでしょうか。 新たな疑問! #まるで小学生のガキが、なぜなぜ攻撃してるみたいですが..(^^ゞ #最近、私を含め周りにUNIX信者が増えている模様です。 #だって面白いんだもん。 >print文を埋め込んで試してみませう ;-) すいません、オバカでよく分からないのですが具体的にどうすれば 私にも理解できるでしょうか。 ↑完全に開きなおってるかもしれない(^_^)V これだけいろいろ御世話になっているので、何かお礼がしたいとこ ろですが、なにか出来る事が有れば言って下さい。 と、いっても何が出来るわけでは無いし....でも気持ちだけは有り ます。(本気度=120%) |
|
> すいません、オバカでよく分からないのですが具体的にどうすれば > 私にも理解できるでしょうか。 何を知りたいのかわからないので、全部は説明したくないです(結構な量になるので)。 何を知りたいのでしょうか? できれば open(EXEC,"| .$ENV{PATH_INFO} 2>&1"); というのを書いたのだから、「とりあえずPATH_INFOの値を見てみる」 くらいは試してください。 > でもなんで、$ENV{PATH}=''としなければいけないのでしょうか。 一言で言えば「汚れている」からです。消す必要はなくて、PATHを 再設定すればよかったですね。長くなるので青ラクダ本 P.409 参照。 別に質問するなってわけじゃないですけど、自分で調べる努力は必要です。 それでもわからなかったらどんどん質問すればいいですけど、その際でも 極限まで発生条件を切り詰めた上で、 「何がわからないか」「どのような状況で調べたのか」 などを書かないと、結局 回答者側が苦労するハメになります。 |
|
よかったやっと見れるようになった。(^^ゞ う〜んすいませんです。 >> すいません、オバカでよく分からないのですが具体的にどうすれば >> 私にも理解できるでしょうか。 > 何を知りたいのかわからないので、全部は説明したくないです(結構な量になるので)。 >「print文を埋め込んで試してみませう ;-)」 この意味そのものが分からなかったのです。m(_ _)m この文がどういう意味で書いたのか、何を言いたかったのか、 と言う意味で、単純に私の日本語理解度が足りないための質問でした。 > 何を知りたいのでしょうか? できれば > open(EXEC,"| .$ENV{PATH_INFO} 2>&1"); >「とりあえずPATH_INFOの値を見てみる」 > くらいは試してください。 setコマンドで環境変数を見てみましたが PATH_INFOは設定されてい ませんでした。 私なりに理解できた部分は open(EXEC,"| .$ENV{PATH_INFO} 2>&1"); .$ENV{PATH_INFO} の実行結果の標準&エラーを、openして標準入力 から読込み、表示させているという事位ですが。 前に使い方を、教えてもらい(wrapper.cgi/script.cgi)このような URL指定でscriptcgiを実行すると、コマンドラインでの結果の様な表示に なりました。 まず最初に、wrapper.cgi/script.cgi この様な指定をすると(URLで) httpdはどういう事を行うのでしょうか? 予想1: $ENV{PATH_INFO}には、コマンドでの引数に当たるものが代入される? 予想2: 最初に出現したwrapper.cgiの引数に、script.cgiを与えて実行する? $ENV{PATH_INFO}この環境変数自体が、いつどのように設定されるのかが 解からないので、動作の結果から推測だけですが.... スクリプトやコマンドの実行時に、コマンドラインでの引数を指定する のと同じような動作になるのでしょうか? 仮に上記の予想が合っているとして、「print文を埋め込んで試してみませう ;-)」 この文は、どこにprint文を入れろと言っているのかが、解からなかったのです。 私にとってまだ頭の中では、wrapper.cgi/script.cgiの様な指定方法は、 掲示板等では話題としては知っていましたが、具体的な内容まではまだ 未解析でした、すいませんです。 |