在Windows中删除文件需要哪些权限?

4

在CreateFile()函数中,有像GENERIC_READ、GENERIC_WRITE、FILE_READ_ATTRIBUTES等所述的DesiredAccess。

我的问题是,仅需哪些最小/确切权限即可在系统中删除文件?

谢谢。

2个回答

4
如果您只想删除文件,请使用 DeleteFile 函数。
它的文档详细介绍了您需要哪些权限以及您应该知道的一些事情,比如:

如果您在创建文件时请求删除权限,则可以使用该句柄删除或重命名文件,但不能使用其他句柄。

该文档页面中有很好的信息,包括一个指向 文件安全性和访问权限 的链接。
OpenFile 文档页面链接的 ACCESS_MASK 页面查看实际的删除访问权限标志 - 它被简单地称为 DELETE

但是需要提醒的是:这种类型的检查总是存在竞态条件。在您进行访问权限检查和随后执行删除操作之间,文件权限可能会发生变化。( 检查时间/使用时间 )。


感谢您的快速回复。 DeleteFile会删除文件,这不是我想要的。我只想知道在CreateFile中哪种文件权限允许我删除文件(检查是否可以删除文件,而不是实际删除文件)。 我已经查看了MSDN... - TCS

2

我相信你只需要DELETE访问权限,它不是文件访问权限,而是标准访问权限。

这些标准访问权限是被允许的,但不易找到,但MSDN页面上的文件访问权限说明如下:

文件和目录的有效访问权限包括DELETE、READ_CONTROL、WRITE_DAC、WRITE_OWNER和SYNCHRONIZE标准访问权限。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接