我使用 Gentoo Linux。我需要找出在 root 下运行的程序下载什么以及将下载的文件放在哪里。我还想要一个沙箱来测试来自不可靠来源的程序。
特别是,在安装 hplip 驱动程序时,它会通过网络下载插件。我想知道它下载了哪个文件以及它对环境进行了哪些更改。
请推荐一个适用于 Linux 的沙箱程序
- 它将允许您在虚拟环境中运行程序。
- 它将使用当前的系统配置,即在沙箱中运行的程序与在沙箱外运行的程序相同。
- 它将显示添加或更改了哪些文件。
- 如有必要,它允许您批准或拒绝更改。就像 svn 中的提交一样。
- 与 VirtualBox 和 Vmware 不同,因为它们不满足第 2-4 点
我尝试使用firejail,但它不包含第3点和第4点。我也尝试使用沙箱,它同样未能实现第3点和第4点。strace可以帮助您跟踪所有创建和修改的文件,但不幸的是,它不允许您回滚更改。
一般来说,mbox程序最能满足的要求是https://pdos.csail.mit.edu/archive/mbox/。但不幸的是它不在 Gentoo 存储库中。至少我没找到。
答案1
- 它将允许您在虚拟环境中运行程序。
- 它将使用当前的系统配置,即在沙箱中运行的程序与在沙箱外运行的程序相同。
- 它将显示添加或更改了哪些文件。
您所描述的内容将使用只读 rootfs 和您可以稍后检查的overlayfs 来实现。或者,更简单的是,将 rootfs 放在 btrfs 或 ZFS 上,或者放在精简 LVM 池上的文件系统上,并在安装可疑软件之前制作快照。然后,您可以稍后挂载快照并将其与实际根的状态进行比较。
然而,就隔离而言更明智的做法是在容器中运行软件。这些东西实际上是为了支持“不可变”的基础映像而在顶部进行更改 - 因此很容易单独查看更改。
- 如有必要,它允许您批准或拒绝更改。就像 svn 中的提交一样。
SVN,老派!好吧,您当然可以事后有选择地将更改的文件从覆盖层复制到永久存储中。如果您使用文件系统快照,则rsync --delete
非常有选择地恢复以前的状态。