NTFS 权限 - 创建文件和文件夹但防止删除和修改

Fit*_*roy 10 windows ntfs permissions shared-folders

目标:用户可以在其中创建文件但不能修改或删除文件的共享文件夹。用户还应该能够创建子文件夹。

我已授予我的安全组以下高级 NTFS 权限:

  • 遍历文件夹/执行文件
  • 列出文件夹/读取数据
  • 读取属性
  • 读取扩展属性
  • 创建文件/写入数据
  • 读取权限

通过反复试验,我发现通过授予“写入属性”,这可以防止用户修改/删除现有文件(这是我想要的)。但是,我真的很想解释一下为什么会这样。我唯一的理论是删除/修改文件会更改文件的属性?下面是同样的讨论

编辑 - 我的问题的第二部分无关紧要,我以为我只选择了“创建文件/写入数据”,但我也选择了“创建文件夹/附加数据”。

此外,我希望用户能够在根目录中创建子文件夹,我发现通过授予“创建文件/写入数据”,这允许这样做。但同样,这个名字表明这个权限应该只允许创建文件,而不是文件夹,所以我不明白它为什么起作用?微软对“创建文件/写入数据”属性的解释是“对于文件夹,指定用户是否可以在文件夹内创建文件。对于文件,指定用户是否可以更改文件或覆盖数据。” 没有提到在文件夹中创建子文件夹的能力?

所以基本上,我已经实现了我打算做的事情,但不明白为什么它有效?

Hop*_*00b 7

通过反复试验,我发现通过不授予“写入属性”,这可以防止用户修改/删除现有文件(这是我想要的)。但是,我真的很想解释一下为什么会这样。

这也正是一个功能如何一个文件修改时。当您修改文件时,操作系统实际上不会修改您正在编辑的文件。它用您更改的副本替换您正在编辑的文件。因此,从本质上讲,文件修改获取原始文件的副本,将其加载到内存中(您修改它的位置),删除原始文件,并在同一位置创建一个具有相同名称的新文件。这就是为什么Delete修改文件需要NTFS权限的原因——事实上,如果你检查Advanced permissions一个 NTFS 对象,就没有Modify权限——修改实际上只是删除和写入。

因此,为了创建文件的新副本,它必须写入这个新文件的文件属性……当然,写入属性需要Write attributesNTFS 权限。所以这就是为什么你不能在没有Write attributesNTFS 权限的情况下修改文件。

具体来说,感谢与 Fitzroy 的聊天NTFS 文件属性需要在用户的安全上下文下写入(没有Write Attributes权限就不能),在修改文件时,而不是在创建一个全新的文件时,会是文件的LastModificationTime. Standard Information据一位微软核心团队开发人员称,这是属性的一部分

  • _“这就是为什么修改文件需要 NTFS 删除权限 - 事实上,如果你检查 NTFS 对象的高级权限,会发现没有修改权限 - 修改实际上只是删除和写入。”_ 你能支持吗有任何事实或参考吗?因为通过进一步的测试我发现,为了修改一个简单的文本文件的内容(使用记事本)我只是添加了以下权限:写入属性、写入扩展属性和创建文件夹/附加数据。我接受不同的程序在修改文件时可能会表现出不同的行为...... (2认同)

drk*_*log 4

这是真的:没有“写入属性”权限会导致用户无法修改其文件。根据微软的文档,这是没有意义的。但修改文件并不意味着删除和重新创建它。当应用程序打开文件进行修改时,操作系统不会删除该文件。但是,操作系统所做的是锁定文件以防止并发修改。我的猜测是锁定文件属于“更改文件属性”概念。因此,无法更改属性将导致无法修改文件。

对于你问题的第二部分,我无法重现。有两种不同的权限适用于文件夹:“创建文件/...”和“创建文件夹/...”,它们在我的测试期间根据文档工作。