如果在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特别定义了这些群体:
哪一个最接近“任何坐在机器上的用户,管理员,非管理员或其他任何用户,但没有人从网络访问该机器”?
答案 0 :(得分:4)
你的方向错了!不要将您的应用程序数据存储在%PROGRAMFILES%
下!使用目的地:CSIDL_APPDATA
如果您想获得有关security identifiers的更多信息,请咨询Microsoft。