# File lib/puppet/util/suidmanager.rb, line 24
24:     def asuser(new_uid=nil, new_gid=nil)
25:         return yield unless Process.uid == 0
26:         # We set both because some programs like to drop privs, i.e. bash.
27:         old_uid, old_gid = self.uid, self.gid
28:         old_euid, old_egid = self.euid, self.egid
29:         begin
30:             self.egid = convert_xid :gid, new_gid if new_gid
31:             self.euid = convert_xid :uid, new_uid if new_uid
32: 
33:             yield
34:         ensure
35:             self.euid, self.egid = old_euid, old_egid
36:         end
37:     end