| Definition of the safe levels $SAFE>= 1
     The environment variables RUBYLIBandRUBYOPTare not
      processed, and the current directory is not added to the path. The command-line options -e,-i,-I,-r,-s,-S, and-xare
      not allowed. Can't start processes from $PATHif any directory
      in it is world-writable. Can't manipulate or chroot to a directory whose name is a tainted string.
     Can't glob tainted strings.
     Can't eval tainted strings.
     Can't load or require a file whose name is a tainted string.
     Can't manipulate or query the status of a file or pipe whose
      name is a tainted string.
     Can't execute a system command or exec a program from a
      tainted string.
     Can't pass trapa tainted string.$SAFE>= 2
     Can't change, make, or remove directories, or use chroot.
     Can't load a file from a world-writable directory.
     Can't load a file from a tainted filename starting with ~.
     Can't use
      File#chmod,File#chown,File#lstat,File::stat,File#truncate,File::umask,File#flock,IO#ioctl,IO#stat,Kernel#fork,Kernel#syscall,Kernel#trap.Process::setpgid,Process::setsid,Process::setpriority, orProcess::egid=. Can't handle signals using trap.$SAFE>= 3
     All objects are created tainted.
     Can't untaint objects.
    $SAFE>= 4
     Can't modify a nontainted array, hash, or string.
     Can't modify a global variable.
     Can't access instance variables of nontainted objects.
     Can't change an environment variable.
     Can't close or reopen nontainted files.
     Can't freeze nontainted objects.
     Can't change visibility of methods (private/public/protected).
     Can't make an alias in a nontainted class or module.
     Can't get meta information (such as method or variable lists).
     Can't define, redefine, remove, or undef a method in a nontainted
      class or module.
     Can't modify Object. Can't remove instance variables or constants from nontainted
      objects.
     Can't manipulate threads, terminate a thread other than the
      current, or set abort_on_exception. Can't have thread local variables.
     Can't raise an exception in a thread with a lower $SAFEvalue. Can't move threads between ThreadGroups.
     Can't invoke exit,exit!, orabort. Can load only wrapped files, and can't include modules
      in nontainted classes and modules.
     Can't convert symbol identifiers to object references.
     Can't write to files or pipes.
     Can't use autoload. Can't taint objects.
    
 |