gpt4 book ai didi

windows - 在 C :\ProgramData\中写入时的权限/所有者问题

转载 作者:可可西里 更新时间:2023-11-01 12:04:18 27 4
gpt4 key购买 nike

正如 Writing config file in C:\Program Files (x86)\MyApp\myapp.cfg, vs. Administrator privilege 中指出的那样,在 C:\Program Files (x86)\MyApp\myapp.cfg 中编写配置文件不是一个好主意。

取而代之的是,我的软件现在将其数据保存在 %ALLUSERSPROFILE% 的子目录中(例如:Win7 上的 C:\ProgramData\MyApp\myapp.cfg)

[我在 Python 中使用 myfile = open(filename, 'a') 来执行此操作。]

我现在遇到有关此文件的问题:

  • 我用用户A安装了软件,并运行了它,然后写入了文件C:\ProgramData\MyApp\myapp.cfg
  • 然后,我将用户更改为 User B,然后再次运行我的软件:现在显示错误:User 2 无权写入 C :\ProgramData\MyApp\myapp.cfg(权限被拒绝)。

为什么? %ALLUSERSPROFILE% 不是所有用户都可以写的地方吗?如何解决这个问题?

最佳答案

不,C:\ProgramData,又名 FOLDERID_ProgramData,具有受限的安全设置。标准用户可以在那里创建文件。但默认情况下,这些文件是 protected ,因此只有创建该文件的用户才能随后修改该文件。

推荐的解决方案是让您的安装程序为您的共享存储创建一个 C:\ProgramData 子目录。安装程序必须为该子目录提供一个许可的 ACL。这就是授予所有标准用户所需访问权限的原因。

我想知道您是否真的需要共享的可写数据。通常我希望看到共享配置是在安装时指定的并且管理员很少修改的东西。大多数配置数据往往是针对每个用户的。

关于windows - 在 C :\ProgramData\中写入时的权限/所有者问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22107812/

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