UTS Namespace
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
UTS(UNIX时间共享系统)命名空间是Linux内核的一个特性,它提供了两个系统标识符的隔离:主机名和NIS(网络信息服务)域名。这种隔离允许每个UTS命名空间拥有自己独立的主机名和NIS域名,这在容器化场景中特别有用,因为每个容器应该表现为一个具有自己主机名的独立系统。
当创建一个新的UTS命名空间时,它会以从其父命名空间复制的主机名和NIS域名开始。这意味着在创建时,新的命名空间共享与其父命名空间相同的标识符。然而,命名空间内对主机名或NIS域名的任何后续更改将不会影响其他命名空间。
UTS命名空间内的进程可以使用sethostname()
和setdomainname()
系统调用分别更改主机名和NIS域名。这些更改是本地的,不会影响其他命名空间或主机系统。
进程可以使用setns()
系统调用在命名空间之间移动,或使用带有CLONE_NEWUTS
标志的unshare()
或clone()
系统调用创建新的命名空间。当进程移动到新的命名空间或创建一个时,它将开始使用与该命名空间关联的主机名和NIS域名。
通过挂载新的 /proc
文件系统,如果使用参数 --mount-proc
,您可以确保新的挂载命名空间具有 特定于该命名空间的进程信息的准确和隔离的视图。
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE) 学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)