我们必须通过一些旧股来设置新的权限。
股份一般build立如下:
ShareRoot (inheritance disabled, explicit permissions) \Folder1 (inheritance disabled, explicit permissions) \Folder & Files (inheritance enabled, inherit permissions) \Folder2 (inheritance disabled, explicit permissions) \Folder & Files (inheritance enabled, inherit permissions) \Folder3 (inheritance disabled, explicit permissions) \Folder & Files (inheritance enabled, inherit permissions)
这意味着ShareRoot和直接子文件夹没有inheritance权限。
权限显式设置为ShareRoot,Folder1,Folder2和Folder3。
在Folder1下,Folder2和Folder3是inheritance到子文件夹和文件的权限。
显式设置权限的示例:
ShareRoot -------------------- BUILTIN\Administrators:(OI)(CI)(F) NT AUTHORITY\SYSTEM:(OI)(CI)(F) DOMAIN\ShareAdmin:(OI)(IO)(F) DOMAIN\ShareAdmin:(CI)(F) DOMAIN\ShareRootC:(OI)(IO)(M) DOMAIN\ShareRootC:(CI)(M) DOMAIN\ShareRootR:(OI)(IO)(RX) DOMAIN\ShareRootR:(CI)(RX) ShareRoot\Folder1 -------------------- BUILTIN\Administrators:(OI)(CI)(F) NT AUTHORITY\SYSTEM:(OI)(CI)(F) DOMAIN\ShareAdmin:(OI)(IO)(F) DOMAIN\ShareAdmin:(CI)(F) DOMAIN\Folder1C:(OI)(IO)(M) DOMAIN\Folder1C:(CI)(M) DOMAIN\Folder1R:(OI)(IO)(RX) DOMAIN\Folder1R:(CI)(RX)
我们使用以下命令来更改权限:
icacls.exe "ShareRoot" /remove:g DOMAIN\ShareAdmin DOMAIN\ShareRootC DOMAIN\ShareRootR /grant:r DOMAIN\ShareAdmin:(OI)(CI)(F) DOMAIN\ShareRootC:(OI)(CI)(M) DOMAIN\ShareRootR:(OI)(CI)(RX)
新的权限按预期应用。
但是有一些奇怪的副作用:
1)inheritance将被启用
inheritance将在文件夹中启用,尽pipe之前已禁用。 我们期望inheritance不会改变,因为我们只操作显式集权限。
2)icacls遍历所有文件夹和子文件夹
尽pipe在子文件夹中inheritance是禁用的,icacls遍历共享中的每个子文件夹和文件。 这个行动需要很长时间才能完成。
如果我们直接在文件资源pipe理器中应用新的权限, Right click --> Properties --> Security ,上述两点就不能被复制。 一切都按预期工作。
有人有一个想法,可能是什么问题?
也许icacls命令有什么问题?
感谢帮助