From: Take_tk Date: 2003-04-07T11:59:11+09:00 Subject: [ruby-list:37526] Re: Tmpfile.newがデフォルトで/tmpを利用すること たけ(tk)です [ruby-list:37523] Re: Tmpfile.newがデフォルトで/tmpを利用すること にて TAKAISHI Hayato さん曰く: > * ライブラリ(Tempfile)が行儀の悪い振舞をするということは、 > Rubyで作成した(Tempfileを使っている)全てのプログラムが行 > 儀の悪いプログラムになってしまう危険があるということ。 想像ですけど、Unix系では /tmp ディレクトリがあることを前提にしても行儀が 悪いとな見なされていないのでしょう。慣習として /tmp ディレクトリがあるこ とが当然の前提となっている。 従って、 ruby は /tmp ディレクトリを決め打ちで使っている。 ruby は /tmp ディレクトリがあることを前提にしている。 ruby にとって /tmp ディレクトリは当然に必要なディレクトリである。 とすれば、「/tmp ディレクトリがなければ作ってしまう」「作りっぱなしにす る」というのが正解ではないでしょうか?  マニュアルに、次のように明記しておけば良いのではないでしょうか? (1)必要なディレクトリなのでなければ自動的に作って、作りっぱなしにする。 (2)自動作成できない場合にはエラーになるので、あらかじめ作っておくこと。 ---- 一番うれしいのは DOSISH 環境では次のディレクトリを決め打ちで使ってもらえ ること。 Unix の /tmp に対応するのはこれだと思う。 p ENV["windir"][0,2]+"/tmp" #=> c:/tmp if $SAFE > 0 and tmpdir.tainted? if DOSISH tmpdir = ENV["windir"][0,2]+"/tmp" else tmpdir = '/tmp' end end * windir 環境変数の偽装が可能かな? しかし、偽装しても悪用することは 不可能なのではなかろうか? Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武