Dostęp do obiektów IPC

Obiekty IPC są tworzone, usuwane i używane za pośrednictwem kilku wywołań systemowych, które omówiono w odpowiednim rozdziale podręcznika programisty systemu Trusted AIX. Typowi użytkownicy nie wykonują tych operacji. W tym temacie przedstawiono ogólny przegląd reguł obowiązujących podczas tworzenia, usuwania i używania obiektów IPC.

Aby uzyskać dostęp do obiektu IPC, proces musi pomyślnie przejść testy uprawnień DAC, MIC i MAC.

Test uprawnień DAC zależy od trybu (właściciel, grupa lub świat) obiektu oraz od identyfikatorów użytkownika i grupy dla procesu. Proces ma wobec obiektu IPC uprawnienia właściciela DAC, jeśli efektywny UID procesu jest identyczny z UID właściciela obiektu lub UID twórcy obiektu. To samo dotyczy uprawnień dla grupy DAC.

Uprawnienia dostępu MAC zależą od etykiet SL procesu i obiektu. Uprawnienia dostępu MIC zależą od etykiet TL procesu i obiektu.

Reguły dostępu do zawartości obiektu IPC są takie same, jak w przypadku atrybutów obiektu IPC. Aby odczytać zawartość lub atrybuty obiektu IPC, wymagane są prawa dostępu DAC READ, MIC READ i MAC READ. Aby wykonać operację zapisu w obiekcie IPC, wymagane są uprawnienia DAC WRITE, MIC WRITE i MAC WRITE.

Dostęp do atrybutów obiektu IPC objęty jest bardziej rygorystycznymi obostrzeniami niż jego zawartość. Zmiana atrybutów obiektu IPC wymaga tym samym większych uprawnień. Aby zmodyfikować standardowe atrybuty systemu AIX, takie jak tryb, proces wymaga uprawnień dostępu do obiektu na poziomie DAC OWNER i MAC WRITE. Aby zmienić etykietę SL obiektu IPC, proces wymaga wszystkich następujących uprawnień:
  • PV_SL_PROC
  • DAC OWNER (tylko zmiana na wersję wcześniejszą)
  • DAC WRITE
  • MAC WRITE
  • PV_SL_UG, aby podnieść etykietę SL, lub PV_SL_DG, aby obniżyć etykietę SL
  • PV_MAC_CL w przypadku istniejącej lub nowej etykiety SL poza zezwoleniem procesu
  • MIC WRITE
Aby zmienić TL obiektu IPC, proces wymaga wszystkich następujących uprawnień:
  • PV_TL
  • DAC OWNER
  • MAC WRITE
  • MIC WRITE

Dodatkowo, aby można było zablokować i odblokować segment pamięci wspólnej, proces musi mieć uprawnienie PV_KER_IPC_O. Proces wymaga także uprawnienia PV_KER_IPC, aby można było zmienić parametr msg qbytes kolejki komunikatów w podprogramie msgctl.