非管理员的Inno设置和权限:每个人,用户还是authusers?

时间:2010-06-23 10:56:27

标签: permissions uac inno-setup acl

如果在UAC下,我想将数据文件夹和文件写入程序的非管理员用户,我是否应该向“所有人”或“用户”或“authusers”提供“修改”权限?

我希望基本上每个可以坐在电脑前的人都可以通过程序读/写数据。我还读到,使用'everyone'进行修改权限可以在网络上打开安全漏洞。每个人,用户和authusers之间有什么区别?有什么安全隐患?

InnoSetup的实施细节如下:

使用InnoSetup,我在标准的Program Files子文件夹中安装一个EXE,并在其中安装一个Data子文件夹,如下所示:

C:\ Program Files \ My Prog \ Prog.exe
C:\ Program Files \ My Prog \ Data \ MyData.dat

现在,为了使Prog.exe可以修改MyData.dat,即使非管理员用户启动了Prog.exe,我也会使用以下行给“子”文件夹“数据”授予“修改”权限:

[Dirs]  
Name: "{app}\Data"; Permissions: everyone-modify;  
;This is the question: should I use users or authusers instead of everyone?  

[Files]  
Source: "MyProg.exe"; DestDir: "{app}"; Flags: replacesameversion;  
Source: "MyData.dat"; DestDir: "{app}\Data"; Flags: replacesameversion; 

这个问题类似于2686918,但我没有找到关于权限类型的足够信息,因此这个新的问题。在澄清这个问题之后我会更新这个问题。

InnoSetup特别定义了这些群体:

  • admins内置管理员组
  • authusers经过身份验证的用户组
  • 每个人都是
  • powerusers内置Power Users组
  • system Local SYSTEM user
  • 用户内置用户组

哪一个最接近“任何坐在机器上的用户,管理员,非管理员或其他任何用户,但没有人从网络访问该机器”?

1 个答案:

答案 0 :(得分:4)

你的方向错了!不要将您的应用程序数据存储在%PROGRAMFILES%下!使用目的地:CSIDL_APPDATA

如果您想获得有关security identifiers的更多信息,请咨询Microsoft。