Advertisement
Guest User

Untitled

a guest
Feb 22nd, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.50 KB | None | 0 0
  1. static void GiveNTFSPermissions(string folderPath,
  2. string ntAccountName,
  3. FileSystemRights accessRights)
  4. {
  5. DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
  6.  
  7. FileSystemAccessRule newAccessRule =
  8. new FileSystemAccessRule(
  9. ntAccountName,
  10. accessRights,
  11. AccessControlType.Allow);
  12.  
  13. dirSecurity.AddAccessRule(newAccessRule);
  14.  
  15. Directory.SetAccessControl(folderPath, dirSecurity);
  16. }
  17.  
  18. GiveNTFSPermissions(@"\sri-devpcRootShare",
  19. @"domainusername",
  20. FileSystemRights.Write);
  21.  
  22. GiveNTFSPermissions(@"\sri-devpcRootShareInsideRootShare",
  23. @"domainusername",
  24. FileSystemRights.Write);
  25.  
  26. public void SetFileSystemRights(string target, string group, FileSystemRights permission)
  27. {
  28. if (!IsDirectory(target) && !IsFile(target))
  29. return;
  30.  
  31. var oldSecurity = Directory.GetAccessControl(target);
  32. var newSecurity = new DirectorySecurity();
  33.  
  34. newSecurity.SetSecurityDescriptorBinaryForm(oldSecurity.GetSecurityDescriptorBinaryForm());
  35.  
  36. var accessRule = new FileSystemAccessRule(group,
  37. permission,
  38. InheritanceFlags.None,
  39. PropagationFlags.NoPropagateInherit,
  40. AccessControlType.Allow);
  41. bool result;
  42. newSecurity.ModifyAccessRule(AccessControlModification.Set, accessRule, out result);
  43.  
  44. if (!result) Log.AddError("Something wrong happened");
  45.  
  46. accessRule = new FileSystemAccessRule(group,
  47. permission,
  48. InheritanceFlags.ContainerInherit |
  49. InheritanceFlags.ObjectInherit,
  50. PropagationFlags.InheritOnly,
  51. AccessControlType.Allow);
  52.  
  53. result = false;
  54. newSecurity.ModifyAccessRule(AccessControlModification.Add, accessRule, out result);
  55. if (!result) Log.AddError("Something wrong happened");
  56.  
  57. Directory.SetAccessControl(target, newSecurity);
  58.  
  59. if (result) Log.AddGood("Permissions set for '{0}' on folder '{1}'", group, target);
  60.  
  61. if (!result) Log.AddError("Something wrong happened");
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement