许多类 Unix 系统,包括 Linux 和 System V 系统,都支持 System V 进程间通信 (IPC) 对象。实际上,Open Group 的 Single UNIX Specification 版本 2 [Open Group 1997] 要求 System V IPC。System V IPC 对象可以是以下三种类型之一:System V 消息队列、信号量集和共享内存段。每个这样的对象都具有以下属性
创建者、创建者组和其他人的读写权限。
创建者 UID 和 GID - 对象的创建者的 UID 和 GID。
所有者 UID 和 GID - 对象所有者的 UID 和 GID(初始时等于创建者 UID)。
当访问此类对象时,规则如下
如果进程具有 root 权限,则授予访问权限。
如果进程的 EUID 是对象的所有者或创建者 UID,则检查相应的创建者权限位,以确定是否授予访问权限。
如果进程的 EGID 是对象的所有者或创建者 GID,或者进程的某个组是对象的所有者或创建者 GID,则检查相应的创建者组权限位以进行访问。
否则,检查相应的“其他”权限位以进行访问。
请注意,root 用户或 EUID 为所有者或创建者的进程可以设置所有者 UID 和所有者 GID,和/或删除对象。更多信息请参见 ipc(5)。