IPC Namespace
Temel Bilgiler
IPC (Inter-Process Communication) namespace, mesaj kuyrukları, paylaşılan bellek segmentleri ve semaforlar gibi Sistem V IPC nesnelerinin izolasyonunu sağlayan bir Linux çekirdek özelliğidir. Bu izolasyon, farklı IPC namespace'lerinde bulunan süreçlerin birbirlerinin IPC nesnelerine doğrudan erişememesini veya bunları değiştirememesini sağlar ve süreç grupları arasında ek bir güvenlik ve gizlilik katmanı sunar.
Nasıl çalışır:
Yeni bir IPC namespace oluşturulduğunda, tamamen izole bir Sistem V IPC nesne seti ile başlar. Bu, yeni IPC namespace'inde çalışan süreçlerin varsayılan olarak diğer namespace'lerdeki veya ana sistemdeki IPC nesnelerine erişemeyeceği veya bunlarla etkileşime giremeyeceği anlamına gelir.
Bir namespace içinde oluşturulan IPC nesneleri, yalnızca o namespace içindeki süreçler tarafından görünür ve erişilebilir. Her IPC nesnesi, kendi namespace'inde benzersiz bir anahtar ile tanımlanır. Anahtar farklı namespace'lerde aynı olabilir, ancak nesneler kendileri izole edilmiştir ve namespace'ler arasında erişilemez.
Süreçler,
setns()
sistem çağrısını kullanarak namespace'ler arasında geçiş yapabilir veyaCLONE_NEWIPC
bayrağı ileunshare()
veyaclone()
sistem çağrılarını kullanarak yeni namespace'ler oluşturabilir. Bir süreç yeni bir namespace'e geçtiğinde veya bir tane oluşturduğunda, o namespace ile ilişkili IPC nesnelerini kullanmaya başlayacaktır.
Laboratuvar:
Farklı Namespace'ler Oluşturma
CLI
Yeni bir /proc
dosya sisteminin örneğini --mount-proc
parametresi ile monte ederek, yeni montaj ad alanının o ad alanına özgü süreç bilgilerine doğru ve izole bir görünüm sağladığınızı garanti edersiniz.
Docker
Hangi ad alanında olduğunuzu kontrol edin
Tüm IPC ad alanlarını bul
IPC ad alanına girin
Ayrıca, başka bir işlem ad alanına yalnızca root iseniz girebilirsiniz. Ve başka bir ad alanına giremezsiniz onu işaret eden bir tanımlayıcı olmadan (örneğin /proc/self/ns/net
).
IPC nesnesi oluşturun
Referanslar
Last updated