实现 AppContainer

AppContainer 通过向进程令牌添加新信息、更改 SeAccessCheck () ,使所有旧式、未修改的访问控制列表 (ACL) 对象默认阻止来自 AppContainer 进程的访问请求,并重新创建应可供 AppContainers 使用的 ACL 对象。

此过程

首先为进程令牌添加新信息。 然后更改 SeAccessCheck () ,使所有旧版未修改的 ACL 默认阻止来自 AppContainer 进程的访问请求。 最后,重新创建应可供 AppContainers 使用的 ACL 资源

AppContainer SID 是 appcontainer 的永久性唯一标识符。 功能 SID 向 AppContainer 组授予对资源组的访问权限。 AppContainerNumber 是用于区分 AppContainer 的暂时性 DWORD 。 但是,不应将其用作 AppContainer 的标识。

若要允许单个 AppContainer 访问资源,请将其 AppContainerSID 添加到该资源的 ACL。

若要允许多个特定的 AppContainer 访问资源,请将其所有 AppContainerSD 添加到该资源的 ACL。

若要管理权限组,请创建功能 SID (GUID) ,并将该功能 SID 放在要授予的所有资源上。 然后将功能 SID 添加到进程令牌。

若要允许所有 AppContainer 访问资源,请将 所有应用程序包 SID 添加到该资源的 ACL。 这类似于通配符。

AppContainerSID 和 CapabilitySID 都支持访问控制项 (ACE) 中的访问掩码。 根据需要设置。