文章归档

Namespaces系列4:user namespace

User namespaces are have been introduced as early as Linux 3.5 and are considered as stable starting with Linux 4.3.

1. 简介

user namespace是最近才出现在内核主干里的,主要是为了隔离安全相关的标识和属性,例如 user IDs and group IDs (see credentials(7)), the root directory, keys (see keyctl(2)), and capabilities等等。但是从内核实现上来看,user namespace只是简单的提供了一种uid/gid映射机制,capabilities虽然与user namespace非常相关,但它不是user namespace中的概念,capabilities是进程的概念,它是进程的一种属性,它要远比user namespace出现的早

在这篇文章里,我们分四步走:

  1. 我们先来了解一下,user namespace的基本用法
  2. 以及user namespace如何结合capabilities实现容器的安全性隔离
  3. user namespace在解决什么问题?
  4. 内核实现
  5. 与其他namespace的交互以及兼容性问题

简单来说,有了这个东西之后,容器可以有一个假的root账户,在不影响宿主安全的情况下,最大限度的使用更多的内核特权功能,user namespace让容器变得更像虚拟机了

»» 继续阅读全文