Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- static void GiveNTFSPermissions(string folderPath,
- string ntAccountName,
- FileSystemRights accessRights)
- {
- DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath);
- FileSystemAccessRule newAccessRule =
- new FileSystemAccessRule(
- ntAccountName,
- accessRights,
- AccessControlType.Allow);
- dirSecurity.AddAccessRule(newAccessRule);
- Directory.SetAccessControl(folderPath, dirSecurity);
- }
- GiveNTFSPermissions(@"\sri-devpcRootShare",
- @"domainusername",
- FileSystemRights.Write);
- GiveNTFSPermissions(@"\sri-devpcRootShareInsideRootShare",
- @"domainusername",
- FileSystemRights.Write);
- public void SetFileSystemRights(string target, string group, FileSystemRights permission)
- {
- if (!IsDirectory(target) && !IsFile(target))
- return;
- var oldSecurity = Directory.GetAccessControl(target);
- var newSecurity = new DirectorySecurity();
- newSecurity.SetSecurityDescriptorBinaryForm(oldSecurity.GetSecurityDescriptorBinaryForm());
- var accessRule = new FileSystemAccessRule(group,
- permission,
- InheritanceFlags.None,
- PropagationFlags.NoPropagateInherit,
- AccessControlType.Allow);
- bool result;
- newSecurity.ModifyAccessRule(AccessControlModification.Set, accessRule, out result);
- if (!result) Log.AddError("Something wrong happened");
- accessRule = new FileSystemAccessRule(group,
- permission,
- InheritanceFlags.ContainerInherit |
- InheritanceFlags.ObjectInherit,
- PropagationFlags.InheritOnly,
- AccessControlType.Allow);
- result = false;
- newSecurity.ModifyAccessRule(AccessControlModification.Add, accessRule, out result);
- if (!result) Log.AddError("Something wrong happened");
- Directory.SetAccessControl(target, newSecurity);
- if (result) Log.AddGood("Permissions set for '{0}' on folder '{1}'", group, target);
- if (!result) Log.AddError("Something wrong happened");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement