全部文章目录:
Flatpak打包(1)——Flatpak 介绍
Flatpak打包(2)——Flatpak应用元素
Flatpak打包(3)——应用Flatpak
Flatpak打包(4)——构建第一个Flatpak
Flatpak打包(5)——开始配置
Flatpak打包(6)——构建一个简单的应用
Flatpak打包(7)——Flatpak Builder
Flatpak打包(8)——应用Sandbox(沙盒)
Flatpak打包(9)——应用分发
Flatpak打包(10)——可用运行时(Runtime)
Flatpak打包(11)——命令参考
Flatpak打包(12)——Flatpak-builder命令参考
flatpak的主要目标之一是通过将应用程序彼此隔离来提高桌面系统的安全性。这是使用沙盒完成的,并且这意味着,默认情况下,flatpak对主机环境的访问权限非常有限。
- 除运行时,应用程序和
〜/.var/app/$APPID
之外,不能访问任何主机文件.只有最后一个是可写的。 - 无法访问网络。
- 不能访问任何设备节点(除了
/dev/null
等)。 - 无法访问沙箱外的进程。
- 有限的系统调用。例如,应用程序不能使用非标准网络套接字类型或ptrace其他进程。
- 有限的访问会话B-Bus实例 - 应用程序只能在bus上拥有自己的名字。
- 无法访问X,系统D-Bus或PulseAudio等主机服务。
大多数应用程序需要访问其中一些资源才能发挥作用,而flatpak提供了多种方式让应用程序访问它们。
尽管应用程序可以使用哪些沙箱权限没有限制,但作为良好的做法,建议尽可能使用最少数量的权限。强烈建议不要使用某些权限,例如全面访问系统总线(使用--socket = system-bus
选项)。
配置沙箱权限
使用build-finish
命令是配置沙箱权限的最简单方法。就像在前面的例子中看到的那样,这可以用来添加对图形套接字和网络的访问:
$ flatpak build-finish dictionary2 --