|
>はい、勝手にfreeしてくれます。 なるほどー! freeしなかったリスクは、ユーザーだけが引き受けて、 他人に迷惑を掛けるおそれはない訳ですね。 マルチユーザーのメモリ管理をちゃんと勉強しないといけないなぁ… >え〜、FreeBSDでは、gethostby* は libc に入ってますので、 >gethostbyaddr のソースは あっ、すいません。先に教えて頂いたときに、いろいろあるなー と感心してたのですが、ライブラリのソースがあることまでは、 考えが及びませんでした(^^;;; MS-DOSでも、入手可能な場合はありますが、有償だったり… うーん、やはり羨ましい世界だぁ… ともかく、詳細な解説ありがとうございましたm(_ _)m >というわけで、全て static で宣言されているようですね。 ガ〜ン! こういうコーディングもありなのかぁ… 16bitアドレス(MS-DOSのnearポインタ)でアクセスできる 最大64KBのデータ領域に慣れてしまうと、8KBもの静的領域 ってのが発想しづらい…(^^; >char * な領域ってのはどこかな? よく読んでませんが、 > static char hostbuf[8*1024]; >っぽいですね。 ですね。hostbufのh_nameの後に順に書き並べて、このアドレスを h_aliases[]にストアしてるみたいです。 >もしよろしければ、その話題が出たのはどこなのか教えていただけますか? 残念ながらプログラミング関連のボードではないので、 ご期待には沿えないかもしれません(^^; それと、一応隠しボードなので、ここには書けないです。 でも、リンクを逆に辿って来るのはOKって言ってたので、 向こうからこっちにリンクを張っておきますんで、 覗いてみて下さい(笑い) |
|
ふぅ、この前はつかれてたのでなかば強制的に自分なりの解答と してしまいましたが、引き続き調べてみました。 #くっそー、グヤジイ!!!(怒笑) >/usr/bin/perl は perl5 ですか? This is perl, version 5.004と(TurboLinix) This is perl, version 5.004_04 built for i386-linux(RedHat)です。 > perl -c とすると、Args must match #! line at su.cgi line 1. コマンドラインでいくつかのパターンを試しましたが、ラクダ本のP644では >あなたが指定したものは、あなたが考えたようには解釈されない可能性がある。 という意味らしいです。 #このシステムではサポートされないという意味なのかなぁ。 だけどrootのコマンドラインからでは全く問題無く動きます。 ちなみに、一般権限でコマンド上の実行は、スクリプトの内容通り cat /etc/ftpaccess でエラー終了します。 その際のメッセージです。 Insecure $ENV{PATH} while running setuid at ./su.cgi line 15. #当然の結果ですよね。 > suidスクリプトの実行時には、perlに渡す引数と > suidperlに渡す引数が同じでなくてはいけません。 「青ラクダ本に書いて...」すいませんページ教えてくれません か。m(_ _)m >何か問題が発生すると原因を切りわけていく必要があります。 > httpdが原因かもしれないので、CGI経由で実行するより > コマンドラインで実行すべきかと思います。 コマンドラインでは、68Userさんの言う通りの結果だったので やはりhttpdの方なんでしょうか。 >そうです。コマンドの alias と /etc/aliases は全く別物です。 アッそうか! 完全に勘違いしていました。(>_<) で、/etc/aliasesを修正し newaliasを実行したのですが... 反映されませんでした。 FreeBSDだと、/etc/aliasesを修正して、newalisasを実行するだけで 反映されるのでしょうか? 現在英語マニュアルと格闘中です。 ちなみにnewalias事項の際に、以下のようなメッセージが出ます。 Couldn't open /usr/lib/aliases.text for input! #どうも/usr/lib/aliases.textが開けないと言っているらしい。 #英語圏で生まれていれば、こんな苦労は無かったのに(; ;) |
|
追加ですが。 > perl -c とすると、Args must match #! line at su.cgi line 1. これは、スクリプトのパーミッションを4755とした時にでます。 0755にすると出ません。 なにか関係があるのでしょうか? |
|
> ちなみに、一般権限でコマンド上の実行は、スクリプトの内容通り > cat /etc/ftpaccess でエラー終了します。 #!/usr/local/bin/perl $ENV{PATH}=''; open(IN,"/etc/ftpaccess"); print <IN>; ではどうですか? これでダメなら、suidperlは使えない設定になっている んじゃないでしょうか。 > すいませんページ教えてくれませんか。 > ラクダ本のP644では >>あなたが指定したものは、あなたが考えたようには解釈されない可能性がある。 > という意味らしいです。 の6行下に書いてあります(^^; M.Masudaさんが見てるのは違うメッセージの 説明ですよね。 > FreeBSDだと、/etc/aliasesを修正して、newalisasを実行するだけで > 反映されるのでしょうか? はい、そうです。 > ちなみにnewalias事項の際に、以下のようなメッセージが出ます。 > Couldn't open /usr/lib/aliases.text for input! FreeBSDでは /usr/lib/aliases.txt というファイルはないので ちょっとわかりません。newaliases(1)、aliases(5)あたりに書いて ありませんか? バイト行くんで、この辺で。では〜。 |