在 Linux 下,我希望能够在“安全”的环境中从命令行启动任何东西,即确保它无法读取或写入我的计算机上的任何文件,如果它无法访问网络就更好了。
我想创建一个仅在当前文件夹(而不是其他任何地方)具有读取权限的用户,并su
让该用户启动命令,这样可行吗? 那么网络呢?
你会怎么办 ?
答案1
你想要的最好是通过强制访问控制来实现,例如应用装甲。如今几乎每个发行版都包含某种类型的 MAC,但通常具有相当宽松的权限,因此您可以根据自己的需要添加自己的自定义限制。
答案2
看着
- chroot jails(schroot 很流行)
- UML(稍微复杂一些)
要真正限制对外围设备的访问,需要完全/虚拟机虚拟化。
- qemu/qemu-kvm 实现完全隔离
使用 debootstrap(适用于基于 Debian 的发行版)将是一个很好的起点
BSD 和 Solaris 原生支持区域/容器正是这种隔离功能。Solaris 无疑更胜一筹(具有完整的虚拟化网络子系统 Crossbow),但不幸的是,Oracle 终止了 OpenSolaris 发行版。
您应该能够基于 Nexenta(Solaris 内核上的 Debian 用户空间)或 IllumOS(基于最新发布的 OpenSolaris 的分支)获得一些运行,但我希望 BSD 能够更接近 Linux 体验。