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" 或错误消息。
我有一个 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" 或错误消息。