IPC Namespace
Osnovne informacije
IPC (Inter-Process Communication) namespace je funkcija Linux kernela koja obezbeđuje izolaciju System V IPC objekata, kao što su redovi poruka, segmenti deljene memorije i semafori. Ova izolacija osigurava da procesi u različitim IPC namespace-ima ne mogu direktno pristupiti ili izmeniti IPC objekte jedni drugih, pružajući dodatni sloj sigurnosti i privatnosti između grupa procesa.
Kako to funkcioniše:
Kada se kreira novi IPC namespace, počinje sa potpuno izolovanim skupom System V IPC objekata. To znači da procesi koji se izvršavaju u novom IPC namespace-u ne mogu pristupiti ili ometati IPC objekte u drugim namespace-ima ili na host sistemu po defaultu.
IPC objekti kreirani unutar namespace-a su vidljivi i pristupačni samo procesima unutar tog namespace-a. Svaki IPC objekat je identifikovan jedinstvenim ključem unutar svog namespace-a. Iako ključ može biti identičan u različitim namespace-ima, objekti sami su izolovani i ne mogu se pristupiti između namespace-a.
Procesi mogu prelaziti između namespace-a koristeći
setns()
sistemski poziv ili kreirati nove namespace-e koristećiunshare()
iliclone()
sistemske pozive saCLONE_NEWIPC
flagom. Kada proces pređe u novi namespace ili ga kreira, počinje da koristi IPC objekte povezane sa tim namespace-om.
Lab:
Kreirajte različite Namespace-e
CLI
Montiranjem nove instance /proc
datotečnog sistema ako koristite parametar --mount-proc
, osiguravate da nova mount namespace ima tačan i izolovan prikaz informacija o procesima specifičnim za tu namespace.
Docker
Proverite u kojem je namespace vaš proces
Pronađite sve IPC imenske prostore
Uđite u IPC namespace
Takođe, možete ući u drugi procesni prostor imena samo ako ste root. I ne možete ući u drugi prostor imena bez deskriptora koji na njega ukazuje (kao što je /proc/self/ns/net
).
Kreirajte IPC objekat
References
Last updated