Bubblewrap是一个Flatpak和类似项目使用的低级非特权沙箱工具。
bubblewrap是一个构建沙箱环境的工具。bubblewrap不是一个完整的、具有特定安全策略的现成沙箱。bubblewrap的一些用例需要沙箱和真实系统之间的安全边界;其他用例希望能够更改沙箱内进程的文件系统布局,但并不旨在成为安全边界。因此,沙箱进程和主机系统之间的保护级别完全由传递给bubblewrap的参数决定。无论哪个程序为bubblewrap构造命令行参数(通常是较大的框架,如Flatpak、libgnome-desktop、sandwine或临时脚本),都负责定义自己的安全模型,并选择适当的bubblewrap命令行参数来实现该模型安全模型。bubblewrap在大多数Linux发行版的软件包存储库中都可用。
bubblewrap的工作原理是创建一个新的、完全空的挂载命名空间,其中root 位于主机上不可见的tmpfs上,并且当最后一个进程退出时将自动清理。然后,你可以使用命令行选项构建根文件系统和进程环境以及在命名空间中运行的命令。源代码中有一个更大的演示脚本,但这里有一个精简版本,它运行一个新的shell,重用主机的/usrbwrap\--ro-bind/usr/usr\--symlinkusr/lib64/lib64\--proc/proc\--dev/dev\--unshare-pid\--new-session\bash这是一个不完整的示例,但对于说明目的很有用。
评论