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 |