From: "ko1 (Koichi Sasada)" <redmine@...> Date: 2013-02-19T07:26:05+09:00 Subject: [ruby-core:52503] [ruby-trunk - Bug #7879] File.readable? fails when ruby runs as root Issue #7879 has been updated by ko1 (Koichi Sasada). Category set to core Assignee set to nobu (Nobuyoshi Nakada) Target version set to 2.1.0 ---------------------------------------- Bug #7879: File.readable? fails when ruby runs as root https://bugs.ruby-lang.org/issues/7879#change-36571 Author: balbi (Feliple Balbi) Status: Open Priority: Normal Assignee: nobu (Nobuyoshi Nakada) Category: core Target version: 2.1.0 ruby -v: ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux] I have the following script to find sysfs (linux) files which are readable but throw an exception when read: Dir.glob("/sys/**/*").each do |file| next if File.directory?(file) if File.world_writable?(file) puts "#{file} is world-writable" end if File.readable?(file) begin File.open(file) { |f| result = f.readline } rescue EOFError nil rescue => e puts e.message end end end If I run as a normal user, it works just fine, but when I run as root, even for files which are write only (chmod 200), File.readable?(f) will return true which makes my script fail. I have also tried File.readable_real? but it has the same outcome. -- http://bugs.ruby-lang.org/