在我的工作场所,我们在我们的应用程序中加入了Windows DACL权限模型,我们的目标是使用Windows权限API查找文件/文件夹的权限 .

在浏览TRUSTEE_TYPE的文档时,我们意识到对于我们来说,TRUSTEE_TYPE始终是 TRUSTEE_IS_USER ,因为我们的应用程序将始终由登录用户启动 .

但我想了解更多关于保留 TRUSTEE_TYPE 的内容 . 特别

TRUSTEE_IS_GROUP,
  TRUSTEE_IS_DOMAIN,
  TRUSTEE_IS_ALIAS,
  TRUSTEE_IS_WELL_KNOWN_GROUP,
  TRUSTEE_IS_COMPUTER

这些其他类型什么时候出现?

也就是说,给定程序/应用程序进程,组/域/别名/ well_known_group /计算机如何成为其 TRUSTEE_TYPE ?如果是这样,谁做到了?

换句话说,在什么情况下 TRUSTEE_IS_USER 没有设置并设置为上面提到的其他类型?

================================================

Update

用例详细信息:

我们正在实现一种使用dacl接口API(如GetFileSecurity等)获取/修改文件/文件夹权限的功能 .

我们将这些权限转换为我们的内部自定义位掩码,例如user_read,group_read和domain_read,以便其他开发人员可以轻松采用此接口 .

但是阅读关于受托者类型和dacl权限模型的理论,我们意识到受托者类型是在登录用户/所有者启动进程时设置的(这几乎总是如此) .

我们试图在受托者类型(具有Windows通用权限)和我们的自定义权限位标记之间创建一对一映射 .

我们的应用程序几乎总是由登录用户启动,因此在查询Windows权限api时,我们将受托者类型设置为用户 .

现在我们正在尝试理解这个受托人类型是否(根本或任何)必须是group / domain / alias / well_known_group / computer,因为我们正在为每个人创建自定义位掩码,这看起来很浪费,因为我们的受托人永远都是一个用户 .

因此这个问题 .