User namespace 是 Linux 3.8 新增的一种 namespace,用于隔离安全相关的资源,包括 user IDs and group IDs,keys, 和 capabilities。同样一个用户的 user ID 和 group ID 在不同的 user namespace 中可以不一样。说明:本文的演示环境为 ubuntu 16.04。在新的 user namespace 中,root 用户是有权限创建其它的 namespace 的,比如 uts namespace。这是因为除了 user namespace 外,创建其它类型的 namespace 都需要 CAP_SYS_ADMIN 的 capability。在前面的演示中我们提到了用户在 user namespace 之间的映射,下面我们同样通过演示来理解映射是什么。也就是说如果没有指定映射关系的话,会默认会把 ID 映射到 65534。注意:只能向 map 文件写一次数据,但可以一次写多条,并且最多只能 5 条。我们把刚才打开的 shell 窗口称为第一个 shell 窗口开始执行用户的映射操作。在看看当前 bash 进程具有的 capability:0000003fffffffff 表示当前运行的 bash 拥有所有的 capability。

详解Linux Namespace之User

详解Linux Namespace之User

详解Linux Namespace之User

详解Linux Namespace之User