summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util
diff options
context:
space:
mode:
authorJesse Wolfe <jes5199@gmail.com>2010-05-12 18:26:43 -0700
committertest branch <puppet-dev@googlegroups.com>2010-02-17 06:50:53 -0800
commit37a55306aa08e2004103e9a4a2a94bba18ffa61d (patch)
tree0e8fd85505a8bfa17b08611ce160211420339cfa /lib/puppet/util
parentac7efc8f0284d6b35f5428da06ba371cf94998ec (diff)
downloadpuppet-37a55306aa08e2004103e9a4a2a94bba18ffa61d.tar.gz
puppet-37a55306aa08e2004103e9a4a2a94bba18ffa61d.tar.xz
puppet-37a55306aa08e2004103e9a4a2a94bba18ffa61d.zip
Feature #2935 Modes: root? predicate
Use a predicate method to check if we're running as root, rather than comparing the effective user id Signed-off-by: Jesse Wolfe <jes5199@gmail.com>
Diffstat (limited to 'lib/puppet/util')
-rw-r--r--lib/puppet/util/settings.rb2
-rw-r--r--lib/puppet/util/suidmanager.rb6
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