summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/puppet/type/pfile.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/puppet/type/pfile.rb b/lib/puppet/type/pfile.rb
index 5343d8a50..c383dfc93 100644
--- a/lib/puppet/type/pfile.rb
+++ b/lib/puppet/type/pfile.rb
@@ -271,7 +271,15 @@ module Puppet
end
end
begin
- FileUtils.cp(file, file + backup)
+ # Shouldn't this just use a Puppet object with 'source'
+ # specified?
+ bfile = file + backup
+ FileUtils.cp(file, bfile)
+
+ unless File.stat(file).mode == File.stat(bfile).mode
+ mode = File.stat(file).mode & 007777
+ File.chown(mode, bfile)
+ end
return true
rescue => detail
# since they said they want a backup, let's error out