并非我们运行的所有应用程序都来自受信任的存储库。有时我们会得到一个包.deb
,.rpm
其中.tar
包含我们不完全信任的应用程序。我说的是轻微的不信任,而不是完全的偏执。
在不就是否运行它们进行大辩论的情况下,我将如何运行一个不受信任的 GUI 应用程序,其基本标准是:
- 它无权访问我的重要文件
- 未聚焦时无法监听键盘或鼠标输入
我所知道的可能性
另一个或同一系统上的另一个受限用户
我这里遇到的问题是X。当然你可以运行xhost +local:restricteduser
或者也许gksudo -u restricter thatapplication
,但是它们会满足上面列出的基本标准吗?安全吗?
我似乎不是这样,因为我用 JDownloader 测试了这个,它在我通过 X 访问进入的虚拟机中运行,并且它可以访问我的剪贴板......
其他机器/系统(可以是虚拟的)
这看起来很安全,因为他们可能会破坏其他系统,而你的系统仍然没问题,但每次应用程序启动虚拟机似乎有点过头了(你必须真的非常不信任该应用程序)。
其他
我听说 IIRC 正在开发一个操作系统,将为每个用户创建一个新的虚拟机。不记得名字了...
答案1
如果威胁模型集中于文件和 X 访问,则应通过创建新用户/组来处理文件,并确保文件权限足够严格,该用户/组无法访问任何重要内容。
对 X 的限制可以通过启动虚拟 X 服务器(例如vnc4server
)来处理,您可以在其中控制(例如通过xvnc4viewer
)该服务器仅在您明确聚焦查看器窗口等时看到鼠标或键盘活动。
当然,没有什么可以阻止你使用 read-make沙箱喜欢firejail
或其他。