在 Windows 中归档目录树保留权限

在 Windows 中归档目录树保留权限

我必须在远程 Windows 服务器上存档(= 移动到“存档”子文件夹并设置只读标志)一组远程目录,并保留 ACL。这些目录具有不同的访问权限,一些从父文件夹继承,一些则不是。移动的目录保留其访问权限是至关重要的(例如,某些目录可能只有管理员可以访问,并且必须保持这种状态)。

我对目录属性中的“只读”标志进行了一些尝试,它似乎部分满足了我的要求——设置之后,我仍然能够在 RO 目录中创建一个新文件,我想阻止它。

然而,最大的问题是在不破坏 ACL 的情况下移动目录。

有人能帮我解决上述问题吗?

提前谢谢您!

R.

答案1

我建议首先使用 备份当前 ACL icacls /save,以便在出现问题时能够从头icacls /restore开始重新启动。


权限仅从直接父目录继承(或重新继承),而不是从所有父目录一起继承。因此,禁用最顶层目录本身的继承(使权限静态)就足够了,例如使用

icacls my_2008_project /inheritance:d

这会将当前继承的 ACE 转换为静态 ACE,因此无论目录移动到哪里,生成的 ACL 都不会改变 - 因此其文件和子目录继承的 ACL 也不会改变。

(实际上,仅仅移动物品无论如何都不会自动调整继承的权限,但上述步骤确保这种情况不会意外发生。)


为了防止写入,您还必须使用 ACL。(“只读”属性仅适用于文件 - 对于目录则完全忽略。)最简单的方法是添加“拒绝”ACE:

icacls my_2008_project /t /deny Everyone:W

这会将 ACE 单独添加到每个项目中(因为您提到其中一些项目已禁用可继承权限)。

常规的可继承版本是:

icacls my_2008_project /deny Everyone:(OI)(CI)W

相关内容