Linux 名称空间
从2.6.24开始支持6种命名空间,得益于这6种命名空间,用户创建的进程可以和系统分离的更加彻底
- CLONE_NEWIPC: 进程间通信命名空间,可以将 SystemV 的 IPC 和 POSIX 的消息队列独立出来。没懂这句话什么意思
- CLONE_NEWPID: 进程命名空间,空间内PID等信息是独立的,命名空间内的 PID 映射到命名空间外时会使用另外一个 PID。
- CLONE_NEWNET: 网络命名空间,用于隔离网络资源(/proc/net、IP 地址、网卡、路由等)。后台进程可以运行在不同命名空间内的相同端口上,用户还可以虚拟出一块网卡。
- CLONE_NEWNS: 挂载命名空间,进程运行时可以将挂载点与系统分离,使用这个功能时,我们可以达到 chroot 的功能,而在安全性方面比 chroot 更高。
- CLONE_NEWUTS: UTS 命名空间,主要目的是独立出主机名和网络信息服务(NIS)
- CLONE_NEWUSER: 用户命名空间,同进程 ID 一样,用户 ID 和组 ID 在命名空间内外是不一样的,并且在不同命名空间内可以存在相同的 ID。