是否存在用于 bash/zsh 会话的隔离环境或虚拟环境(如 pyvenv)?

是否存在用于 bash/zsh 会话的隔离环境或虚拟环境(如 pyvenv)?

我想测试某些 cli 应用程序,我只想将其安装在隔离环境中,并且对系统的其余部分没有影响。

答案1

您有多种选择(非详尽列表):

  1. VM(Qemu/KVM、Xen、VirtualBox、VMware...) - 最孤立的(除了单独的硬件系统)。除非您想为此花费一些额外的精力,否则您将运行单独的操作系统安装。可以以非破坏性的方式重用当前系统,例如告诉虚拟机使用由主(主机)系统映像支持的磁盘映像 - 这意味着来宾系统决定进行的任何更改都将继续“上层”映像,而底层主机映像(通常是硬盘驱动器上的分区)将保持不变。

  2. 系统级虚拟化使用某种容器 - 设计上不太安全,对系统(阅读:硬件)资源的占用较少。通常,您会与容器化系统共享相同的运行内核,这正是容器化系统变得不太安全的地方 - 使用内核中的漏洞的恶意应用程序不会与您的主系统隔离。通常,有多种选择。对于 Linux 来说,经典的例子是:

    1. chroot- 一个单独的目录,它将成为/新进程的根 ( ) 目录。这意味着它需要包含所需的所有可能的库和二进制文件(以及配置/数据/...)。从安全角度来说是破碎的,但几乎存在于任何系统上。

    2. firejail- “chroot on steroids”(我更喜欢将其视为“chroot as it should be”)。以类似的方式工作,但有额外的限制和支持功能。也就是说,它允许人们轻松地将现有文件系统结构的特定部分安装到具有不同访问权限的目标环境中,同时它仍然类似于原始环境结构。最重要的是,firejail允许选择其容器中允许的系统调用

  3. “用户级”虚拟化 - 创建另一个用户帐户并以该用户身份运行应用程序。安全方面仅依赖于系统访问控制。最容易设置。

相关内容