在我的工作场所,我们在我们的应用程序中加入了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,因为我们正在为每个人创建自定义位掩码,这看起来很浪费,因为我们的受托人永远都是一个用户 .
因此这个问题 .