【问题标题】:NSIS Access Control Read OnlyNSIS 访问控制 只读
【发布时间】:2016-10-15 06:35:39
【问题描述】:

我有一个带有由 NSIS 脚本创建的安装程序的 C 程序。问题是安装程序添加的文件之一需要只读。对于这个问题,我正在尝试使用 AccessControl 插件。我将插件目录包含在以下行中:

!addplugindir "AccessControl\Unicode\Plugins"

在我的安装部分的底部,我尝试了这些行但没有成功:

AccessControl::GrantOnFile "$INSTDIR\file.txt" "BUILTINUSERS" "GenericRead + Delete"
AccessControl::GrantOnFile "$INSTDIR\file.txt" "(BU)" "GenericRead + Delete"
AccessControl::GrantOnFile "$INSTDIR\file.txt" "(S-1-5-32-545)" "GenericRead + Delete"
AccessControl::GrantOnFile "$INSTDIR\file.txt" "(S-1-1-0)" "GenericRead + Delete"

脚本编译时没有显示错误,但运行安装程序后仍然可以覆盖文件。我没有从这些来源中获得任何成功。

http://nsis.sourceforge.net/AccessControl_plug-in

http://avidinsight.uk/2014/01/nsis-access-control-problem-with-built-in-users-group/

How do you set directory permissions in NSIS?

http://nsis.sourceforge.net/Talk:AccessControl_plug-in

最后一点,我使用的是 Windows 8。

【问题讨论】:

    标签: nsis


    【解决方案1】:

    GrantOnFile 附加到文件的现有 ACL 并且从不限制任何内容。使用 SetOnFile 启动新的 ACL,或者在您的情况下,使用 DenyOnFile 拒绝特定组的访问。

    您还应该在每次调用这些函数后Pop,弹出的字符串将为“ok”或错误消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-09
      • 2020-09-30
      • 2010-09-22
      • 1970-01-01
      相关资源
      最近更新 更多