【问题标题】:Permissions for ALL APPLICATION PACKAGES issue所有应用程序包问题的权限
【发布时间】:2014-09-01 07:06:13
【问题描述】:

我的 VS 2013 项目中有一个 config.txt 文件。这是它对所有应用程序包的权限:

当我通过在我的解决方案中编译 InstallShield LE 项目获得 setup.exe,当我运行 setup.exe 时,我会在具有以下权限的 Program Files 下获得此 config.txt:

我希望在提取 setup.exe 后允许所有权限。我怎样才能做到这一点?谢谢

【问题讨论】:

  • 应该避免像这样减少对共享位置中文件的保护。如果可能,最好将应用程序更改为使用每个用户的配置文件位置,或许可以从程序文件位置复制模板。

标签: windows-8 installshield installshield-le


【解决方案1】:

出于安全目的,默认情况下,ProgramFiles 文件夹和所有子目录和文件只有读取和读取和执行权限。因此,复制到此文件夹的所有文件都会继承这些权限。
要在 InstallShield 的帮助下更改文件或文件夹权限,您可以参考相应的 documentation。也可以通过启动不同的工具来处理权限,例如 subinacl.exe、icacls.exe 等,并借助自定义操作来实现。

但是,正如 cmets 中的 Michael Urman 所述,将具有写入权限的配置文件放在 ProgramFiles(和其他系统文件夹)下是个坏主意,因为可能存在安全问题。 因此,我也建议不要使用此逻辑并将这些文件存储在用户配置文件文件夹中。

【讨论】:

  • 伪 +1 以获得正确的信息(前两句话),因为我不能赞同建议更改 ProgramFiles 下的权限的帖子。
  • 我理解您的担忧,但很多应用程序使用文件夹等 ProgramFiles 来存储 config\temp 文件。这是程序员的问题——而不是打包者的问题。另一方面,您可以只提供对一个配置文件的读写访问权限,以防止可能出现的安全问题。
  • 这限制了安全问题的范围,是的,但不会阻止它们。我们已经知道程序的这方面写得不好,所以谁愿意假设损坏或丢失的配置文件不会破坏应用程序?
  • 很可能,它会破坏它。我同意你的看法——程序员使用 ProgramFiles 存储应该具有写访问权限的文件是一种不好的做法。我应该添加警告来回答这个问题。
猜你喜欢
  • 2023-03-22
  • 2021-12-26
  • 2012-04-03
  • 2022-08-10
  • 2013-02-16
  • 1970-01-01
  • 2010-12-13
  • 1970-01-01
  • 2022-01-04
相关资源
最近更新 更多