NSIS 访问控制只读

NSIS Access Control Read Only

我有一个 C 程序,其中包含一个由 NSIS 脚本创建的安装程序。问题是安装程序添加的文件之一需要只读。对于这个问题,我正在尝试使用 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.

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

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