gpt4 book ai didi

windows - 文件安全属性在文件副本上搞砸了

转载 作者:可可西里 更新时间:2023-11-01 09:22:39 27 4
gpt4 key购买 nike

我有一个 Windows 服务可以更新我们的产品。它将产品文件复制到一个临时目录,通常是“C:\Windows\Temp”,修补二进制文件,然后使用 MoveFileEx 在重新启动时将文件复制回安装目录,通常是“C:\Program Files\Product” ”。安装目录中的文件从父文件夹继承它们的安全属性。在复制、打补丁和重启后,安装目录中的文件缺少一些 ACL。具体来说,这些文件不再具有用户组的 ACL,因此用户在重新启动后无法再运行该程序。

谁能解释一下这是怎么回事?似乎从安装目录复制到临时目录,文件继承了临时目录的 ACL。但是,在 MoveFileEx/Reboot 上,文件仅继承安装目录和临时目录共有的 ACL。

最佳答案

在 Windows 中,如果您复制一个文件,该文件将采用目标目录的 ACL。如果您移动一个文件,ACL 会随之覆盖它可能从该目录继承的任何文件。我不确定 MoveFileEx 对文件的操作方式可能有何不同。

临时目录通常位于用户配置文件下(%TMP% 和 %TEMP% 通常指向此处),因此在此处复制文件将具有该用户的权限。将这些文件移动到程序文件目录将仅占用该用户对它们的权限,因此只能由安装用户运行。

关于windows - 文件安全属性在文件副本上搞砸了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/203036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com