UTS Namespace
Informações Básicas
Um namespace UTS (UNIX Time-Sharing System) é um recurso do kernel Linux que fornece isolamento de dois identificadores do sistema: o nome do host e o domínio NIS (Network Information Service). Esse isolamento permite que cada namespace UTS tenha seu próprio nome de host independente e domínio NIS, o que é particularmente útil em cenários de containerização onde cada contêiner deve parecer como um sistema separado com seu próprio nome de host.
Como funciona:
Quando um novo namespace UTS é criado, ele começa com uma cópia do nome do host e do domínio NIS do namespace pai. Isso significa que, na criação, o novo namespace compartilha os mesmos identificadores que seu pai. No entanto, quaisquer alterações subsequentes no nome do host ou no domínio NIS dentro do namespace não afetarão outros namespaces.
Processos dentro de um namespace UTS podem alterar o nome do host e o domínio NIS usando as chamadas de sistema
sethostname()
esetdomainname()
, respectivamente. Essas alterações são locais ao namespace e não afetam outros namespaces ou o sistema hospedeiro.Processos podem se mover entre namespaces usando a chamada de sistema
setns()
ou criar novos namespaces usando as chamadas de sistemaunshare()
ouclone()
com a flagCLONE_NEWUTS
. Quando um processo se move para um novo namespace ou cria um, ele começará a usar o nome do host e o domínio NIS associados a esse namespace.
Laboratório:
Criar diferentes Namespaces
CLI
Ao montar uma nova instância do sistema de arquivos /proc
usando o parâmetro --mount-proc
, você garante que o novo namespace de montagem tenha uma visão precisa e isolada das informações de processo específicas daquele namespace.
Docker
Verifique em qual namespace está o seu processo
Encontrar todos os namespaces UTS
Entrar dentro de um namespace UTS
Também, você só pode entrar em outro namespace de processo se for root. E você não pode entrar em outro namespace sem um descritor apontando para ele (como /proc/self/ns/uts
).
Alterar o nome do host
Referências
Last updated