47: def self.chuser
48: if group = Puppet[:group]
49: group = self.gid(group)
50: raise Puppet::Error, "No such group #{Puppet[:group]}" unless group
51: unless Puppet::Util::SUIDManager.gid == group
52: begin
53: Puppet::Util::SUIDManager.egid = group
54: Puppet::Util::SUIDManager.gid = group
55: rescue => detail
56: Puppet.warning "could not change to group #{group.inspect}: #{detail}"
57: $stderr.puts "could not change to group #{group.inspect}"
58:
59:
60:
61:
62: end
63: end
64: end
65:
66: if user = Puppet[:user]
67: user = self.uid(user)
68: raise Puppet::Error, "No such user #{Puppet[:user]}" unless user
69: unless Puppet::Util::SUIDManager.uid == user
70: begin
71: Puppet::Util::SUIDManager.initgroups(user)
72: Puppet::Util::SUIDManager.uid = user
73: Puppet::Util::SUIDManager.euid = user
74: rescue => detail
75: $stderr.puts "Could not change to user #{user}: #{detail}"
76: exit(74)
77: end
78: end
79: end
80: end