From: Koji Arai Date: 2001-08-20T01:42:05+09:00 Subject: [ruby-list:31000] Re: popen() で Insecure PATH 新井です。 In message "[ruby-list:30998] Re: popen() でInsecure PATH" on 20 Aug 2001 01:04:14 +0900, Koji Arai wrote: > 新井です。 > > In message "[ruby-list:30991] Re: popen() で Insecure PATH" > on 19 Aug 2001 19:52:26 +0900, > Kazuhiro NISHIYAMA wrote: > > > =begin > > : (({PATH})) > > > > (())などでコマンドを実行するときに検索するパスです. > > 設定されていないとき(nilのとき)は > > (({"/usr/local/bin:/usr/ucb:/usr/bin:/bin:."})) > > で検索されます. > > =end > > ruby がそうしてるわけじゃないようですよ(なのでこの記述はいら > ないと思うのです)。 あっ、失礼。ruby もなんかしてますね。えっと、ruby は、 sh を実行せず直接 exec するとき(コマンドラインが "*?{}[]<>()~&|\\$;'`\"\n" を含まないとき)は path = "/usr/local/bin;/usr/ucb;/usr/bin;/bin;."; を参照しているわけですね。 ENV['PATH'] = nil p system("printenv PATH") # => false p system("printenv PATH;") => false /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin true なるほど。 -- 新井康司 (Koji Arai)