Windows:创建仅具有我的进程权限的目录(C ++)

时间:2017-11-07 09:10:46

标签: c++ windows

创建一个仅授予执行进程访问权限的文件夹。作业完成后,该过程将删除数据。

目的是避免在所有者进程运行时让任何其他进程尝试操作文件夹中的数据。

我已经尝试过提供ACL,但它没有解决问题。基本上当前用户获得权限,因此如果任何其他进程在同一用户下运行,则另一个进程也获得权限。

//我在这里使用了第二个参数来添加ACL

df

1 个答案:

答案 0 :(得分:1)

您是对的,ACL用于管理用户权限,而不是处理权限。 Windows中很容易将文件限制为正在运行的进程,方法是使用CreateFile打开它,dwShareMode为0。

但根据CreateFile上的MSDN页面,如果dwFlagsAndAttributes参数包含FILE_FLAG_BACKUP_SEMANTICS,则可以使用该函数获取目录句柄。创建是不可能的,但是保持目录打开可能会阻止其他进程访问它。小心我从未测试过。

无论如何,我无法想象一个需要它的真实用例。如果您出于安全原因要这样做,正确的方法是使用专用用户。此外,它允许管理员控制目录中发生的事情。如果出于同步原因,您应该依赖标准同步原语