 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Running Code as Another User | ||
|---|---|---|
| Code | Expected | Actual | 
| module Process
  def as_uid(uid)
    old_euid, old_uid = Process.euid, Process.uid
    Process.euid, Process.uid = uid, uid
    begin
      yield
    ensure
      Process.euid, Process.uid = old_euid, old_uid
    end
  end	
  module_function(:as_uid)
end
Dir.mkdir("as_root")
Process.as_uid(1000) do
  Dir.mkdir("as_leonardr")
  %x{whoami}
end | "leonardr\n" | "leonardr\n" | 
| Process.as_uid(1000) do
  Dir.rmdir("as_root")
end | Errno::EPERM: Operation not permitted - as_root | |
| Dir.rmdir("as_root") | 0 | Error! (Exception?) Here's stdout: Errno::ENOENT: No such file or directory - as_root from (irb):21:in `rmdir' from (irb):21 | 
| system 'runas /user:frednerk ruby script_two.rb' | false | |