|
バイトお疲れ様でした。 いや〜ハマリまくりです。(^^; 結果から言えば動きました。ありがとうございました。 #68Userさんの助言が無ければ、解明する前に諦めていました。 実験で分かった事です。 いくつかの要因が有りました、私のスクリプトがおかしかったの ですが一番まずかったのは、一番最初に68Userさんの提示されたコー ドの通りで動かなかったので、試験スクリプトはsystem()や`コマンド` としていたのがいけなかったです。 つまり68Userさんのいうとおり、suidビットを立てると、あくまで perlが行う操作(openとか)はsuid権限で動きますが、forkされた プロセスでは、再びnobodyに戻ってしまう事です。 てっきりsuidの権限が継承されると思ってました。 #ちなみに $ENV{PATH}='';は削除しても動きました。 以下は試験に使用したスクリプトです。 生成されたファイルのオーナーを見てfork時の権限が分かりました。 #!/usr/local/bin/perl -w $|=1; print "Content-type: text/html\n\n"; print "<html><H3>suid</H3><pre>"; print "<hr>\n"; #$ENV{PATH}=''; open(IN,"./himitu.txt") || die "error:$!"; print <IN>; close(IN); open(OUT,">./make_open") || die "error:OUT $!"; print OUT "Open Command\n" ; close(OUT); if (!system("ls>make_system")) { print "Not Exec System $!\n"; } print "Next Step OK!\n"; print "<hr>\n"; print "Script END\n"; print "</pre></hr></html>\n"; それと検証不足かも知れませんが、perlスクリプト内でsystemコマ ンドを使うと、スクリプトが終了します。 上記の例でいうと、最後の方のprintが実行されません。 ファイルオーナーを、nobodyの時webから実行すると最後まで表示され たので、もしかしたらセキュリティー面での仕様かも知れません。 #エラー位出してくれればいいのに。 それからどういう訳か、perlスクリプト内で closeとするとSTDOUT までcloseしてくれちゃいます。#これってバグ? おかげで勝手にスクリプトが終了するので、これが分かるまで苦労 しました。 #closeにハンドル名をちゃんと指定するとOKでした。 とりあえずこんなとこまで分かりました。 設定は面倒ですが、これでやりたかった事に見通しが出てきました。 ありがとうございます。 >の6行下に書いてあります(^^; M.Masudaさんが見てるのは違うメッセージの > 説明ですよね。 お恥ずかしいばかりです。(>_<) aliasesの方は、どこの解説も68Userさんと同じ説明でした。 他のパッケージのサーバーで試してみます。 PS メール見てもらえましたか? PS2 私の隠しブックマーク見ましたね(^^; |
|
> メール見てもらえましたか? (僕にとっては)内容的に問題ないので、メールの続きはこちらでやります。 > その前に、田中 健という人物をご存知ですか? > http://www.club.kyutech.ac.jp/~hermit/ いやぁ、知らないです。イントラネット内(インターネットとは繋がって いない)で うちのページをコピーして社員向けに公開してもいいか、という メールは頂いたことがありますけど、それとは多分違う人だと思います。 ま、別にいいですけどね。どうせ間違いだらけ/役に立たないコンテンツ なので気にしません。おもしろいものを教えてくださって どうも ありがとうございました(笑) > forkされたプロセスでは、再びnobodyに戻ってしまう事です。 ん〜どうかなぁ? もしそうだとすると suidperl 内では、system や `` などで サブプロセスを(所有者権限で)使えないことになりますが、だとしたら suidperl の意味は半減しますよね。今 実行環境がないので、後からもう少し調べてみます。 > 私の隠しブックマーク見ましたね(^^; ははは、見たかもしれません。 カウンタのあるページは referer 取ってますので、ご注意を>All たまに、どんな風に紹介されてるか見に行ったりします。一度referer たどって行ったらボロクソにけなされてて、喜んでそこの人にメール 書いたこともあります。 # だって、「いいページだ」と書かれるより、「ひどいページだ」と # 書いてある方がうれしいから。悔しいので、ページを よりよいものに # しよう、という気が起こりますよね。 このBBSは referer 取ってませんでしたが、mmさんに > 向こうからこっちにリンクを張っておきますんで、 > 覗いてみて下さい(笑い) と言われたので、昨日から取り始めました(^^; でも、それらしいものが 見付からないなぁ。 > あっ、すいません。先に教えて頂いたときに、いろいろあるなー > と感心してたのですが、ライブラリのソースがあることまでは、 > 考えが及びませんでした(^^;;; まぁ僕はローカルにソースを展開しているので、grep 一発で探せますが、 ネット上で公開されてても探すのはつらいですね。 |