68user's page 掲示板

Prev< No. 237〜238> Next  [最新発言に戻る] [過去ログ一覧]
No. 237 # M.Masuda 1999/03/28 (日) 00:25
バイトお疲れ様でした。

いや〜ハマリまくりです。(^^;
結果から言えば動きました。ありがとうございました。
#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
私の隠しブックマーク見ましたね(^^;

No. 238 # 68user 1999/03/28 (日) 09:03
> メール見てもらえましたか?
(僕にとっては)内容的に問題ないので、メールの続きはこちらでやります。

> その前に、田中 健という人物をご存知ですか?
> http://www.club.kyutech.ac.jp/~hermit/
いやぁ、知らないです。イントラネット内(インターネットとは繋がって
いない)で うちのページをコピーして社員向けに公開してもいいか、という
メールは頂いたことがありますけど、それとは多分違う人だと思います。

ま、別にいいですけどね。どうせ間違いだらけ/役に立たないコンテンツ
なので気にしません。おもしろいものを教えてくださって どうも
ありがとうございました(笑)

> forkされたプロセスでは、再びnobodyに戻ってしまう事です。
ん〜どうかなぁ? もしそうだとすると suidperl 内では、system や `` などで
サブプロセスを(所有者権限で)使えないことになりますが、だとしたら suidperl
の意味は半減しますよね。今 実行環境がないので、後からもう少し調べてみます。

> 私の隠しブックマーク見ましたね(^^;
ははは、見たかもしれません。

カウンタのあるページは referer 取ってますので、ご注意を>All
たまに、どんな風に紹介されてるか見に行ったりします。一度referer
たどって行ったらボロクソにけなされてて、喜んでそこの人にメール
書いたこともあります。
# だって、「いいページだ」と書かれるより、「ひどいページだ」と
# 書いてある方がうれしいから。悔しいので、ページを よりよいものに
# しよう、という気が起こりますよね。

このBBSは referer 取ってませんでしたが、mmさんに
> 向こうからこっちにリンクを張っておきますんで、
> 覗いてみて下さい(笑い)
と言われたので、昨日から取り始めました(^^; でも、それらしいものが
見付からないなぁ。

> あっ、すいません。先に教えて頂いたときに、いろいろあるなー
> と感心してたのですが、ライブラリのソースがあることまでは、
> 考えが及びませんでした(^^;;;
まぁ僕はローカルにソースを展開しているので、grep 一発で探せますが、
ネット上で公開されてても探すのはつらいですね。

Prev< No. 237〜238> Next  [最新発言に戻る] [過去ログ一覧]