我有一个程序需要更改指定文件夹的权限。我必须首先做的是删除通过继承给予该文件夹的任何权限(即删除所有执行权限)并为特定用户/组添加新权限。
我知道当我知道该用户时,我可以轻松删除特定用户的文件夹权限,但有没有办法擦除所有权限以便我可以重新开始,或者我是否需要找到一种方法来查找所有用户现有权限,然后逐个删除它们?
我需要做的更具体的是创建一个没有继承权限的新文件夹并设置我自己的权限。
更具体地说,我想做的就好像我创建了目录然后我进入了安全性,高级并删除了继承。
答案 0 :(得分:1)
答案 1 :(得分:0)
严格来说不是.NET,但您可以ICACLS
使用Process.Start()
这样的程序:
Process.Start("icacls MyDir /inheritance:r");
答案 2 :(得分:0)
所以我一直在做一些测试,我需要做的是从DirectorySecurity调用SetAccessRuleProtection方法并将其应用到我的DirectoryInfo。
我尝试了它并且有效。
答案 3 :(得分:0)
我创建了一个执行相同操作的程序
Private Sub AddPermisssion(ByVal directories As String)
Dim AccountingPermFolder As String = directories
Dim AccountingDI As IO.DirectoryInfo = New IO.DirectoryInfo(AccountingPermFolder)
Dim AccountingDS As DirectorySecurity = AccountingDI.GetAccessControl
AccountingDS.SetAccessRuleProtection(True, False) //True Protect file and False remove Inheritance
IO.Directory.SetAccessControl(AccountingPermFolder, AccountingDS)
AccountingDS.AddAccessRule(New FileSystemAccessRule(Admins, FileSystemRights.FullControl, AccessControlType.Allow))
AccountingDS.AddAccessRule(New FileSystemAccessRule(AccountGroup, FileSystemRights.FullControl, AccessControlType.Allow))
AccountingDS.AddAccessRule(New FileSystemAccessRule(SystemAdmin, FileSystemRights.FullControl, AccessControlType.Allow))
AccountingDI.SetAccessControl(AccountingDS)
End Sub