unshare / isolate mount命名空间

时间:2018-02-13 22:00:52

标签: linux-kernel namespaces filesystems linux-containers

我尝试使用container包中的unshare工具设置带有隔离装载命名空间的linux util-linux

% sudo unshare -m -f /bin/bash

所以我期待bash将在命名空间中启动,其中mount命名空间(即文件系统)将与主机完全隔离,但是我仍然可以修改主机FS(创建/删除文件)主持人FS)。我在这里做错了什么?

2 个答案:

答案 0 :(得分:2)

挂载{{​​3}}仅通过复制父树来创建单独的挂载树。

您仍然必须将文件系统重新安装为只读,卸载它们,将tmpfs挂载到它们或namespace到干净的树中以防止访问。通过用户名称空间切换到umapped用户可能会有所帮助,但它不会阻止访问世界可读/可写文件。

如果您需要设置更复杂的命名空间环境 - 基本上是容器 - 您可以使用pivot_rootfirejail根据配置文件自动执行这些任务。 runc在直接访问基元之间提供了一些中间功能集,如unshare所做的那样,以及容器运行时。

答案 1 :(得分:0)

我假设mount命名空间是隔离的,因为命名空间中的mount / unmount对主机FS没有影响。所以我认为修改FS是另一个问题,可能与用户有关,但不完全确定。