對 IPC 物件的存取
IPC 物件是透過數個系統呼叫而建立、刪除及存取,這些系統呼叫已於「授信 AIX® 程式設計」主題中加以討論。 一般使用者不執行這些作業。本主題呈現 IPC 物件的建立、刪除和存取規則的一般概觀。
若要存取 IPC 物件,處理程序必須通過 DAC、MIC 和 MAC 存取檢查。
DAC 存取檢查是根據物件的模式 (owner、group 或 world) 以及處理程序的使用者和群組 ID。如果處理程序有效 UID 與物件擁有者 UID 或物件建立者 UID 相同,該處理程序對 IPC 物件具有 DAC 擁有者存取權。這也適用於 DAC 群組存取。
MAC 存取是根據處理程序和物件的 SL。MIC 存取是根據處理程序和物件的 TL。
IPC 物件內容的存取規則與 IPC 物件屬性相同。若要讀取 IPC 物件的內容或屬性,需要 DAC READ、MIC READ 和 MAC READ 存取權。若要寫入至
IPC 物件,需要 DAC WRITE、MIC WRITE 和 MAC WRITE 存取權。
IPC 物件屬性比 IPC 物件內容受限更多。因此,變更 IPC 物件屬性需要更大的專用權。若要修改標準 AIX 屬性 (例如模式),處理程序需要物件的
DAC OWNER 和 MAC WRITE 存取權。若要變更 IPC 物件的 SL,處理程序必須具有下列全部專用權:
PV_SL_PROC專用權DAC OWNER(僅供降級)DAC WRITEMAC WRITE- 用於升級 SL 的
PV_SL_UG專用權,或用於降級 SL 的PV_SL_DG專用權 - 如果現有的或新的 SL 在處理程序的許可範圍之外,則必須有
PV_MAC_CL MIC WRITE
若要變更 IPC 物件的 TL,處理程序必須具有下列全部專用權:
PV_TL專用權DAC OWNERMAC WRITEMIC WRITE
另外,為了要鎖定或解除鎖定記憶體中的共用記憶體區段,處理程序必須有 PV_KER_IPC_O 專用權。處理程序也需要 PV_KER_IPC 專用權來變更 msgctl 子常式中的訊息佇列的 msg qbytes。