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)和容器运行时之间提供一些中间特性集