diff options
Diffstat (limited to 'lib/puppet/util')
| -rw-r--r-- | lib/puppet/util/settings.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/util/suidmanager.rb | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/puppet/util/settings.rb b/lib/puppet/util/settings.rb index dd85342c0..1a2126517 100644 --- a/lib/puppet/util/settings.rb +++ b/lib/puppet/util/settings.rb @@ -728,7 +728,7 @@ Generated on #{Time.now}. def writesub(default, file, *args, &bloc) obj = get_config_file_default(default) chown = nil - if Puppet::Util::SUIDManager.uid == 0 + if Puppet.features.root? chown = [obj.owner, obj.group] else chown = [nil, nil] diff --git a/lib/puppet/util/suidmanager.rb b/lib/puppet/util/suidmanager.rb index 424fb461b..6f09005e2 100644 --- a/lib/puppet/util/suidmanager.rb +++ b/lib/puppet/util/suidmanager.rb @@ -44,9 +44,13 @@ module Puppet::Util::SUIDManager alias :gid :egid end + def self.root? + Process.uid == 0 + end + # Runs block setting uid and gid if provided then restoring original ids def asuser(new_uid=nil, new_gid=nil) - return yield unless Process.uid == 0 + return yield unless root? # We set both because some programs like to drop privs, i.e. bash. old_uid, old_gid = self.uid, self.gid old_euid, old_egid = self.euid, self.egid |
