IPC Namespace
Informações Básicas
Um namespace IPC (Inter-Process Communication) é um recurso do kernel do Linux que fornece isolamento de objetos IPC do System V, como filas de mensagens, segmentos de memória compartilhada e semáforos. Esse isolamento garante que processos em diferentes namespaces IPC não possam acessar ou modificar diretamente os objetos IPC uns dos outros, fornecendo uma camada adicional de segurança e privacidade entre grupos de processos.
Como funciona:
Quando um novo namespace IPC é criado, ele começa com um conjunto completamente isolado de objetos IPC do System V. Isso significa que processos em execução no novo namespace IPC não podem acessar ou interferir nos objetos IPC em outros namespaces ou no sistema host por padrão.
Objetos IPC criados dentro de um namespace são visíveis e acessíveis apenas a processos dentro desse namespace. Cada objeto IPC é identificado por uma chave única dentro de seu namespace. Embora a chave possa ser idêntica em diferentes namespaces, os objetos em si são isolados e não podem ser acessados entre namespaces.
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_NEWIPC
. Quando um processo se move para um novo namespace ou cria um, ele começará a usar os objetos IPC 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 IPC
```bash nsenter -i TARGET_PID --pid /bin/bash ``` 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/net`).
Criar objeto IPC
Referências
Last updated