Class: Dir

Inherits:
Object
  • Object
show all
Defined in:
lib/inline.rb

Overview

class File

Class Method Summary collapse

Class Method Details

.assert_secure(path) ⇒ Object

assert_secure checks that if a path exists it has minimally writable permissions. If not, it prints an error and exits. It only works on POSIX systems. Patches for other systems are welcome.



886
887
888
889
890
891
892
893
894
895
896
897
# File 'lib/inline.rb', line 886

def self.assert_secure(path)
  mode = File.stat(path).mode
  unless ((mode % 01000) & 0022) == 0 then
    if $TESTING then
      raise SecurityError, "Directory #{path} is insecure"
    else
      abort "#{path} is insecure (#{'%o' % mode}). It may not be group or world writable. Exiting."
    end
  end
rescue Errno::ENOENT
  # If it ain't there, it's certainly secure
end