Доступ к объектам IPC

Создание, удаление объектов IPC, а также доступ к ним осуществляются посредством нескольких системных вызовов, описанных в главе Программирование Trusted AIX. Эти операции не выполняются обычными пользователями. В этом разделе представлен общий обзор правил создания и удаления объектов IPC, а также доступа к ним.

Для получения доступа к объекту IPC процесс должен пройти проверки DAC, MIC и MAC.

В основе проверок доступа DAC лежит режим объекта (владелец, группа или глобальный) объекта и ИД пользователя и группы процесса. Процесс получает доступ DAC в качестве владельца к объекту IPC, если действующий UID процесса совпадает с UID владельца или автора объекта. Этот же принцип применяется и к групповому доступу 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. Для того, чтобы изменить SL объекта IPC, процессу должны быть присвоены все перечисленные ниже права доступа:
  • PV_SL_PROC
  • DAC OWNER (только понижение уровня)
  • DAC WRITE
  • MAC WRITE
  • Права доступа PV_SL_UG для обновления SL или права доступа PV_SL_DG для понижения уровня SL
  • пPV_MAC_CL, если они существуют, или новый SL за пределами допуска процесса
  • MIC WRITE
Для того, чтобы изменить TL объекта IPC, процессу должны быть присвоены все перечисленные ниже права доступа:
  • права доступа PV_TL
  • DAC OWNER
  • MAC WRITE
  • MIC WRITE

Кроме того, для того, чтобы заблокировать или разблокировать сегмент общей памяти, процессу необходимы права доступа PV_KER_IPC_O. Кроме того, для изменения параметра очереди сообщений msg qbytes в процедуре msgctl процессу также должны быть присвоены права доступа PV_KER_IPC.