Linux / Fedora 沙盒进程和文件系统更改

Linux / Fedora sandboxing processes and filesystem changes

Fedora 上是否有 Linux(接近)等价于 Windows 程序 sandboxie 的 运行?它并不完美,但它基本上创建了一个 C:\Sandbox\\XYZ 目录,并且 XYZ 沙箱中的任何进程 运行 都被 t运行 明显地(对进程)锁定以在该文件夹中进行更改. Sandboxie 可以允许进程 运行 通过它查看外面的情况——基本上它能够为进程提供计算机的状态,但是将沙箱目录覆盖在它上面以给予优先权。

我希望能够启动 bash 终端,进行一些 sudo yum(或者,现在,它的替代 sudo dnf)安装,做任何其他事情,然后全部独立。

因此,我将能够删除其中一个 Linux 沙箱,并且在其中完成的所有操作(包括 yum 或 dnf 安装)都会消失,而不会影响沙箱外部。而且,希望有一种方法可以将沙箱 "bring things out" 整合到完整环境中。

我对适用于大量沙箱的轻量级解决方案很感兴趣,因此不需要将所有内容都复制到新安装中。

我很兴奋 Linux containers,也许我试错了。我尝试了 sudo lxc-execute -n test bash,然后在 "contained" bash 登录中,运行 touch fromLxc,这对不在 lxc 容器中的其他终端很遗憾地可见。

我查看了 docker,但看起来它不让 o/s 的 运行 "on top",而是 运行 的东西在 docker 安装中。因此,当您向顶级 o/s 添加内容时,必须在 docker 安装中重新添加它们。

我认为 chroot 不起作用,因为随着顶层 o/s 的改变,我认为它不会 "propagate" 改变到 chroot 环境中。

我认为您在使用 Linux 容器方面走在正确的轨道上。您想要的功能是 Union Mount,其中进程看到分层文件系统,并且只写入顶层。 Docker 例如使用联合挂载,但以文件系统映像作为最低层开始,而不是主机的本机 '/' fs。所以我相信你想做的是将'/'挂载到某个地方/var/mounts/xyzzy,比如说,使用UnionFS、aufs或OverlayFS在上面挂载另一个文件系统,然后将环境chroot到/var/mounts/xyzzy,这样就没有什么可以逃脱的。这一切都是可能的,但如果你能找到一种使用 docker 的方法,比如用你需要的任何文件构建一个图像,你可能会更快 运行 。