WiX权限,如何用DACL标志表达“修改”?

5

我正在尝试在WiX 3.0.4318.0安装程序中将自定义权限应用于文件夹。

就资源管理器中的安全属性UI而言,我想为BUILTIN\Users的权限添加修改权限。显然,它需要具有针对用户名称的本地化韧性。因此,根据迄今为止的研究,我至少需要:

<CreateFolder Directory="XYZ" >
    <PermissionEx User="[WIX_ACCOUNT_USERS]" 
         GenericRead="yes" GenericWrite="yes" Delete="Yes" />
</CreateFolder>

问题:

  1. 我正在使用子目录 - 我是否正确地认为在Permission和PermissionEx之间选择是无意义的?

  2. 文件夹权限对话框中的“修改”代表什么权利 - 我看到许多人已将其转换为一个魔术数字或一组大型标志 - 其他人使用了什么(意图是允许创建,读取,写入,追加和删除,最好通过UI以简单权限的方式表达为“修改”)。 我已经查看了icacls的基本权限,它告诉我它被称为“M”,但我无法将它们映射到“特定权限”(如icacls /?中所使用的)。 在Windows帮助中还有另一个映射表。 有没有人得到过一个可靠的答案?

Question regarding PermissionEx (WIX)上有一个非常相似但未回答的问题,可以将其作为重复引用。


1
修改权限似乎扩展到ReadData | WriteData | AppendData | ReadExtendedAttributes | WriteExtendedAttributes | ExecuteFile | ReadAttributes | WriteAttributes | Delete | ReadPermissions(在CLR System.Security.AccessControl.FileSystemRights枚举中)。 - leiflundgren
@leiflundgren:谢谢——如果这是一个答案,我很可能会点赞并接受! - Ruben Bartelink
3个回答

4
我找到了以下组合: "修改" 权限
<util:PermissionEx GenericRead="yes" GenericWrite="yes"
   GenericExecute="yes" Delete="yes" DeleteChild="yes" User="SOMEUSER" />

"读取" 权限:

<util:PermissionEx Read="yes" GenericRead="yes" User="SOMEUSER" />

1

在进一步研究后,我的发现如下:

  1. 在3.0.5419.0版本中,PermissionEx与util:“Permission”相比已经不再需要,并且不需要像以前的版本中在网上看到的那样使用Extended =“true”。以前的版本在运行时解析BUILTIN \ USERS时会出现错误。
  2. 选择我选择的三个权限似乎可以满足我的上下文要求。

我仍然非常希望看到其他回复,因为我仍然是一个WiX新手。


1

如果您想要在Windows 7和Windows XP上使用WiX 3.6手动设置权限,那么您需要使用以下内容才能完全实现:

<util:PermissionEx 
    User="Users" Domain="BUILTIN" 
    GenericWrite="yes" GenericExecute="yes" GenericRead="yes" 
    Delete="yes" Synchronize="yes" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接