开发者生态
morning
Flatpak——不安全感的噩梦
摘要
Not to be confused with Flatpack . For over 20 years, Linux has been used everywhere, from servers to embedded devices. One area it has been lacking in, however, is the desktop space. Windows and macO...
the
and
with
Linux
been
desktop
all
system
they
software
2026-10-19
1 阅读
约5分钟阅读
jannesan
字号:
不要与 Flatpack 混淆。 20 多年来,Linux 已被广泛使用,从服务器到嵌入式设备。然而,它一直缺乏的一个领域是桌面空间。 Windows 和 macOS 一直将 Linux 排除在市场之外,游戏主要是 Windows 的事情,而内容创作者则使用 macOS。在过去的十年中,Linux 桌面得到了显着的改进:Flatpak、Wayland、Portals、PipeWire 和 FreeDesktop 都在努力使 Linux 成为一个更适合现代(桌面)系统的操作系统。不过我不会一一列举所有这些;正如标题所示,这将是关于 Flatpak 的!历史 让我们快速浏览一下服务器空间。看到它们运行十年前(有时甚至几十年前!)的内核和库并不罕见。这是有道理的,因为它们的启动时间很长,并且在每次系统更新时,都存在损坏的风险,并且需要对其进行调试;宝贵的正常运行时间损失了,尤其是对于像 Google 这样的大型服务而言。自然地,他们发展了一种快速修补系统最相关部分的方法,因此安全性并不是太大的问题。然而,它们运行的软件可能只能利用新库中的新功能,而不能利用服务器运行的旧的、硬壳的软件。那么他们是如何解决这个问题的呢?容器。它们通常用于以一致且更安全的方式将软件交付给多个客户,它们允许您将软件隔离到一个小盒子中,其中包含所有所需的依赖项、指定版本,并且对主机系统的访问受到限制。目前我们有 Android、macOS 和 iOS,它们对系统的访问都受到限制,需要最终用户干预才能访问某些资源。但是 Linux 桌面呢? 2015年,Flatpak发布,将服务器上容器化所使用的所有技术应用到桌面系统上。随之而来的是 Portals 和 Freedesktop SDK。这为开发人员提供了一致且通用的平台和 API,与之前不同依赖版本、核心系统库和打包格式的战场相比发生了巨大变化。当然,几十年来发行和发展情况都没有变化,这样的改变太大了,不可能一下子做出改变。许多所需的 API 都存在,但开发人员需要抽出时间来迁移到这些 API,而一些用户(特别是讨厌 Flatpak 的用户)强烈拒绝帮助改善这种情况,坚持要求我们坚持旧的做事方式,并为数千个不同的系统重新打包软件数百次。简单地说,自然地,没有一个头脑正常的人会在乎。许多新的应用程序开发人员在创建应用程序时都考虑到了有限的环境,并将其软件发送到 Flathub,从而使软件能够以快速、安全的方式到达最终用户。应用程序限制 那么旧的应用程序呢?毕竟,您可以在 Flathub 上找到已有 10 年历史的应用程序。从这些应用程序中衍生出诸如 Flatpak 之类的文章 - 安全噩梦嘿,您可能会认出这个名字! ,以及自由和开源软件领域内知名人士的各种回应,旨在抵消这些文章中的错误信息和攻击性。对于这些应用程序,FUD(恐惧、不确定性和怀疑)文章喜欢挑选最严重的违规者,并用它来表明 Flatpak 根本不值得推动。所以我想解决这个问题。这些应用程序是在不受限制的环境下设计的,它们所需的 API 要么当时不存在,要么没有更新以使用新的 API。挑选它们来表明 Flatpak 沙箱“不是沙箱”并不是一个有效的论点,这只表明应用程序本身不安全。当然,较旧的应用程序并不是唯一的罪魁祸首。由于新的 API 可能不够成熟,新旧应用程序可能都必须求助于静态权限才能正常工作。对于大多数较新的应用程序来说,这很好,因为它们可以比旧应用程序限制更多的权限。 Flatpak 是一个沙箱。而且 Flatpak 是安全的。应用程序不是。它不能帮助任何人改变“沙箱”这个词的含义。仅仅因为某些应用程序使用的沙箱与 iOS 或 Android 不一样,并不意味着它就失去了沙箱的资格。如果你想为此责怪 Flatpak,请不要成为我的客人。应用程序依赖静态权限的事实表明应用程序不安全并且依赖不一致的接口,并且在某些情况下,当前的 API 尚未针对其用例进行足够的改进。我们应该专注于改善这种情况,而不是试图摧毁它。如果您想要一个真实世界的示例来说明部分沙箱如何仍然有效:“fractureiser”恶意软件。即使恶意软件一开始就无法在 Linux 上运行,它仍然是传统打包方式未能成功的一个例子。
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱