我正在尝试使用Nullsoft Install System构建一个Windows installer,它需要由管理员进行安装。安装程序会创建一个"logs“目录。由于普通用户可以运行此应用程序,因此该目录必须对普通用户可写。如何指定所有用户都应该拥有使用NSIS脚本语言写入该目录权限?
我承认这听起来像是一个坏主意,但这个应用程序只是一个内部应用程序,只有几个人在专用网络上使用。我只需要保存日志文件,这样我就可以看到为什么应用程序会崩溃,如果发生了不好的事情。用户不能成为管理员。
发布于 2008-09-22 19:47:20
使用AccessControl插件,然后将其添加到脚本中,其中"logs“目录位于安装目录中。
AccessControl::GrantOnFile "$INSTDIR\logs" "(BU)" "FullAccess"
这将为所有用户提供对该文件夹的完全访问权限。
发布于 2010-10-14 00:01:42
在Windows Server2008机器上,AccessControl::GrantOnFile "<folder>" "(BU)" "FullAccess"
不适用于我。取而代之的是,我不得不使用这个:
AccessControl::GrantOnFile "<folder>" "(S-1-5-32-545)" "FullAccess"
根据Microsoft Support: Well-known security identifiers in Windows operating systems的说法,S-1-5-32-545相当于“用户”。
发布于 2008-09-24 18:57:00
与其更改Program Files下目录的权限,为什么不将日志放在所有用户都可以写入的位置。
请参阅您的SetShellVarContext文档中的4.9.7.7NIS节。您可以将它与$APPDATA一起使用,以获取对所有用户都可写的应用程序数据文件夹。
https://stackoverflow.com/questions/116876
复制相似问题