Linux kernel 取消共享/隔离装载命名空间

Linux kernel 取消共享/隔离装载命名空间,linux-kernel,namespaces,filesystems,linux-containers,Linux Kernel,Namespaces,Filesystems,Linux Containers,我正在尝试使用util-linux包中的unshare工具设置一个具有独立装载命名空间的linux容器: % sudo unshare -m -f /bin/bash 因此,我希望bash将在一个名称空间中启动,其中装载名称空间(即文件系统)将与主机名称空间完全隔离,但是我仍然可以修改主机FS(在主机FS上创建/删除文件)。这里我做错了什么?我假设装载命名空间是隔离的,因为命名空间中的装载/卸载不会对主机FS产生影响。因此,我认为修改FS是另一个问题,可能与userns有关,但对此并不完全确定

我正在尝试使用
util-linux
包中的
unshare
工具设置一个具有独立装载命名空间的linux
容器:

% sudo unshare -m -f /bin/bash

因此,我希望bash将在一个名称空间中启动,其中装载名称空间(即文件系统)将与主机名称空间完全隔离,但是我仍然可以修改主机FS(在主机FS上创建/删除文件)。这里我做错了什么?

我假设装载命名空间是隔离的,因为命名空间中的装载/卸载不会对主机FS产生影响。因此,我认为修改FS是另一个问题,可能与userns有关,但对此并不完全确定。

我假设装载命名空间是隔离的,因为命名空间中的装载/卸载不会对主机FS产生影响。因此,我认为修改FS是另一个问题,可能与userns有关,但对此并不完全确定。

装载只会通过复制父树来创建单独的装载树

您仍然必须以只读方式重新装载文件系统、卸载它们、在它们上面或在干净的树中装载tmpfs以防止访问。通过用户名称空间切换到umap用户可以在某种程度上有所帮助,但不会阻止对世界可读写文件的访问

如果需要设置更复杂的命名空间环境(基本上是容器),可以使用或根据配置文件自动执行这些任务。在直接访问原语(如unshare)和容器运行时之间提供一些中间功能集。

装载仅通过复制父树来创建单独的装载树

您仍然必须以只读方式重新装载文件系统、卸载它们、在它们上面或在干净的树中装载tmpfs以防止访问。通过用户名称空间切换到umap用户可以在某种程度上有所帮助,但不会阻止对世界可读写文件的访问

如果需要设置更复杂的命名空间环境(基本上是容器),可以使用或根据配置文件自动执行这些任务。在直接访问原语(如unshare)和容器运行时之间提供一些中间特性集