summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith@chef.io>2018-11-20 16:09:48 -0800
committerGitHub <noreply@github.com>2018-11-20 16:09:48 -0800
commit36ab6112fc5958e490841de1f068f4dde5be1a9f (patch)
tree3b922fd95c677bf15e4b0d5d35886774fe7dc3fd
parentb56bbc573c5a4c320c50ee186dab6c6253f96027 (diff)
parent6b12ec7fb03cb9049f5461b7f72da0ad9e2df199 (diff)
downloadchef-36ab6112fc5958e490841de1f068f4dde5be1a9f.tar.gz
Merge pull request #7973 from chef/share_idem
Chef 14: windows_share: Fix idempotency by removing the "everyone" access
-rw-r--r--lib/chef/resource/windows_share.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/chef/resource/windows_share.rb b/lib/chef/resource/windows_share.rb
index fdfe44d8d8..0b245e8590 100644
--- a/lib/chef/resource/windows_share.rb
+++ b/lib/chef/resource/windows_share.rb
@@ -242,6 +242,10 @@ class Chef
Chef::Log.debug("Running '#{share_cmd}' to create the share")
powershell_out!(share_cmd)
+
+ # New-SmbShare adds the "Everyone" user with read access no matter what so we need to remove it
+ # before we add our permissions
+ revoke_user_permissions(["Everyone"])
end
# determine what users in the current state don't exist in the desired state
@@ -297,6 +301,8 @@ class Chef
false
end
+ # revoke user permissions from a share
+ # @param [Array] users
def revoke_user_permissions(users)
revoke_command = "Revoke-SmbShareAccess -Name '#{new_resource.share_name}' -AccountName \"#{users.join('","')}\" -Force"
Chef::Log.debug("Running '#{revoke_command}' to revoke share permissions")