diff options
author | Lamont Granquist <lamont@chef.io> | 2019-12-18 13:26:45 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-18 13:26:45 -0800 |
commit | b2c9c65dea635bd173da98bccbd1ec6e8fd6e8fc (patch) | |
tree | 5f5db7831083626d6de21aa25658303ab371ce23 /lib | |
parent | c0f51a5ae09d53f239e169159c9ec441116dfdfb (diff) | |
parent | 6f2ad0e95c7083fd4cb526ab36388afa6403bf47 (diff) | |
download | chef-b2c9c65dea635bd173da98bccbd1ec6e8fd6e8fc.tar.gz |
resource archive_file: apply ownership to extracted files only (#9173)
resource archive_file: apply ownership to extracted files only
Diffstat (limited to 'lib')
-rw-r--r-- | lib/chef/resource/archive_file.rb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/chef/resource/archive_file.rb b/lib/chef/resource/archive_file.rb index dd208fb60f..58681ecb47 100644 --- a/lib/chef/resource/archive_file.rb +++ b/lib/chef/resource/archive_file.rb @@ -102,8 +102,11 @@ class Chef end if new_resource.owner || new_resource.group - converge_by("set owner of #{new_resource.destination} to #{new_resource.owner}:#{new_resource.group}") do - FileUtils.chown_R(new_resource.owner, new_resource.group, new_resource.destination) + converge_by("set owner of files extracted in #{new_resource.destination} to #{new_resource.owner}:#{new_resource.group}") do + archive = Archive::Reader.open_filename(new_resource.path) + archive.each_entry do |e| + FileUtils.chown(new_resource.owner, new_resource.group, "#{new_resource.destination}/#{e.pathname}") + end end end end |