【问题标题】:How do I set permissions on dynamically linked files?如何设置动态链接文件的权限?
【发布时间】:2011-05-16 17:54:19
【问题描述】:

我有一个 InstallScript 安装程序,它利用多个组件的动态文件链接。这些组件包含标准用户应该能够编辑的配置文件。我们最近发现,当这些文件安装在 Windows Server 08 上时,Administrators 组的权限设置为完全访问权限,但 Users 组只有读取和执行权限。典型的安装位置是 C:\programName。

我尝试在 C:\programName 目录中以管理员身份手动创建新文件(右键单击 - 新文本文件),并且它们生成时具有相同的权限。我假设这只是新文件的标准权限设置。

有什么方法可以在 InstallShield 中设置动态链接文件或包含它们的目录的权限?

我在

中查找了权限设置
  • 组织 -> 组件
  • 应用程序数据 -> 文件和文件夹

但我什么也没找到。动态文件链接的文档没有提及权限。

我们正在使用 InstallShield 2010。

【问题讨论】:

    标签: file-permissions installshield installshield-2010


    【解决方案1】:

    一般来说,这些权限是一件好事;它们是从其父文件夹继承的。非管理员用户(包括在接受 UAC 提示之前访问受限的管理员)应该无法修改 Program FilesC: 下的文件,因此我建议在您的应用程序中解决这个问题(例如通过使用每个用户的 Documents 文件夹) .由于您没有谈论为什么需要它,因此很难确定这是否适用于您的情况。

    如果事实证明在安装而不是应用程序中解决这个问题确实有意义,您可以使用SetObjectPermissions API 以编程方式设置权限。

    【讨论】:

    • 这看起来是一个可行的解决方案,谢谢。 (我确实意识到规避标准安全策略并不理想,但我不是做出这个决定的人。)
    【解决方案2】:

    在“文件和文件夹”页面中,右键单击文件或文件夹,选择属性,然后单击权限按钮。在“权限”对话框中,您可以右键单击名称列表并使用新建上下文菜单选项添加新权限。

    如果该选项不适用于文件,您可以尝试在父文件夹中设置它。

    【讨论】:

    • 不幸的是,我在目标计算机的文件夹属性中没有看到权限选项。我无法检查单个文件,因为它们没有显示在“文件和文件夹”视图中(它们是在构建安装程序之前由项目构建生成的。)
    猜你喜欢
    • 2011-09-25
    • 1970-01-01
    • 2019-03-28
    • 2012-03-02
    • 1970-01-01
    • 2017-10-16
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    相关资源
    最近更新 更多