2010-06-23 24 views
5

如果在UAC下,我想让数据文件夹和文件可写入程序的非管理员用户,我应该给“所有人”还是“用户”或“authusers”授予“修改”权限?Inno设置和非管理员权限:所有人,用户或authusers?

我希望基本上每个可以坐在电脑里的人都可以通过程序读取/写入数据。我还读到,使用“所有人”获得修改权限可能会在网络上打开安全漏洞。每个人,用户和authusers之间有什么区别?什么是安全影响?

为InnoSetup实现细节如下:

使用InnoSetup,我在一个标准的程序安装一个EXE文件子文件夹,并在其中一个数据子文件夹,如:

C:\ Program Files文件\我的PROG \ Prog.exe
C:\ Program Files文件\我的PROG \ DATA \ MYDATA.DAT

现在,为了让这个MYDATA.DAT可以通过Prog.exe进行修改,即使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特别定义了这些群体:

  • 管理员内置的管理员组
  • 的AuthUser Authenticated Users组
  • 大家Everyone组
  • 高级用户内置Power Users组
  • 系统本地SYSTEM用户
  • 用户内置用户组

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

回答

3

你走错了路!请勿将您的申请资料储存在%PROGRAMFILES%!请使用此目录:CSIDL_APPDATA

如果您想了解更多关于security identifiers的信息,请与Microsoft联系。

+0

谢谢。我之前完成了这个工作,在某些情况下,我的编无法访问其中的一些文件夹。因此,在ProgramFiles中使用仅数据子文件夹并提供修改权限的想法。 (修改数据子文件夹的权限,而不是已安装的exe文件夹),并且它似乎目前工作正常...即使我使用ProgramData代替,我仍然需要设置我使用的特定子文件夹的权限,所以我仍然试图了解是否使用每个人,用户或authusers,还有其他什么... – MarcoB 2010-06-23 11:52:28

+0

请参阅我对“安全标识符”的编辑。 – splash 2010-06-23 12:20:12

+0

谢谢,也许你能给我们多一个指针......你能看到我对InnoSetup的SID列表的编辑,并推荐那些关于“谁坐在电脑上,没有其他人”的那些关闭......谢谢! – MarcoB 2010-06-23 13:41:46

相关问题