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


10

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

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

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

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

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

此外,我希望用户能够在根目录中创建子文件夹,并且我发现通过授予“创建文件/写入数据”,可以做到这一点。但是,该名称再次表明,该许可权应仅允许创建文件,而不是文件夹,因此我不明白为什么它可以工作?微软对“创建文件/写入数据”属性的解释是“对于文件夹,指定用户是否可以在文件夹内创建文件。对于文件,指定用户可以更改文件还是覆盖数据。” 没有提及在文件夹中创建子文件夹的功能吗?

因此,基本上,我已经完成了我打算做的事情,但是不知道为什么会起作用?


NTFS文件的内容是“属性”;即默认的未命名数据属性,也可能是一个或多个命名数据属性。
kreemoweet

在这里也可以看到一个很好的答案:superuser.com/a/1145363/132727
CrazyTim

Answers:


7

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

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

因此,为了创建该文件的新副本,它必须写入此新文件的文件属性...,当然,写入属性需要Write attributesNTFS权限。这就是为什么没有Write attributesNTFS权限就无法修改文件的原因。

具体而言,由于与菲茨罗伊聊天时,NTFS文件属性需要被写入用户的安全上下文中(不能是无Write Attributes权限),修改时一个文件,但没有创造一个完全新的一个时,会是文件的LastModificationTimeStandard Information根据Microsoft Core Team开发人员之一的说法,这是属性的一部分


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

...但是,我认为此测试证明不需要“删除”。
Fitzroy 2014年

“这恰好是文件修改发生方式的功能。修改文件时,操作系统实际上并没有修改您正在编辑的文件。它会用更改后的副本替换您正在编辑的文件。因此,本质上,文件修改将获取原始文件的副本,将其加载到内存中(在其中进行修改),删除原始文件,然后在同一位置创建一个具有相同名称的新文件。” - 在许多不同的技术水平上都是非常误导的,而且非常不准确
user2864740

3

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

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


Drk-只是消化您的答案。仅供参考-我在问题中省略了权限,因此我也应该列出“读取扩展属性”。没有此权限,我发现用户无法查看文件的内容(他们得到“访问被拒绝”错误)。我已经相应地更新了我的问题。
Fitzroy 2014年

好的,对于我的测试,我认为您也已授予该权限。我发现即使授予'... / write data'权限,记事本也无法修改文件。这是另一件事值得注意:写入数据与追加数据权限取决于您的应用程序如何打开文件进行修改。很有可能记事本打开的文件总是会添加数据,即使不需要。
drk.com.ar 2014年

对于您问题的第二部分,我无法重现。文件夹有两种不同的权限:“创建文件/ ...”和“创建文件夹/ ...”,它们在我的测试过程中根据文档工作。您是对的,我的错,我以为我只选择了“创建文件/写入数据”,但是我也确实选择了“创建文件夹/附加数据”。
Fitzroy 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.