我试图使用CreateAppContainerProfile运行.NET 6应用程序。基于api用于设置UWP应用程序使用的同一类型沙箱的文档。
现在,如果应用程序安装在c:\program下面,则此操作正确,但如果应用程序安装在其他地方,则进程将失败,因为“未能解析当前可执行路径到可执行文件的完整路径”(代码0x80008085)。
如果用户帐户拥有对应用程序文件夹的WRITE_DAC访问权限,我可以允许沙箱读取/列表_目录访问并再次工作,但是如果用户帐户本身只有读取/列表/执行权限,我就不能这样做。
UWP沙箱的文档说,它们隐式地允许沙箱读取对应用程序目录的访问(这是有意义的),并且考虑到应用程序在不授予任何权限的情况下在c:\program中工作,这在这里似乎也适用,但我不明白为什么它在其他地方不一样。在用户权限之外的文件夹上是否有一些与此相关的安全设置?
关于这个功能的文档太少了,我不太确定还可以在哪里查找信息。
发布于 2022-07-29 07:38:29
在这里回答我自己的问题:我确实考虑过了,假设app容器应该神奇地给应用程序目录提供读取/执行权限。
实际上,c:\program只是为特殊用户“所有受限的应用程序包”提供了一个ACL,它授予所有应用程序容器读取/执行对整个目录树的访问权限。
不幸的是,这意味着我显然找不到一个很好的解决方案。在某个时候,我的主进程必须被提升,以将ACL更改为应用程序目录,以便应用程序容器能够读取它,afaict不可能仅仅“继承”主机进程对容器进程的权限。
“功能”可用于创建应用程序容器以允许访问某些预定义的功能(库、设备、.)或者您基本上可以设置自定义功能,就像容器应该能够访问的一组目录一样,但这同样需要在设置该功能时更改这些目录上的ACL的权限。
https://stackoverflow.com/questions/73139781
复制相似问题