Science for all





System V的IPC

System V的IPC

很多类Unix系统,包括Linux和System V系统,支持System V的进程间通信(IPC)对象。实际上,System V的IPC是Open Group的单一Unix规格版本2[Open Group 1997]所要求的。 System V的IPC对象可以是以下三种:System V的消息队列、信号量集和共享内存段。每个这样的对象都有以下属性:

  • 每个创建者、创建者群组和其他人的读和写许可。

  • 创建者UID和GID -- 对象创建者的UID和GID。

  • 所有者UID和GID -- 对象所有者的UID和GID(初始时等于创建者的UID)。

在存取这样的对象时,规则如下:

  • 如果进程有root权限,同意被存取。

  • 如果进程的EUID是对象所有者或创建者的UID,那么检查相应的创建者许可比特位,看看是否允许存取。

  • 如果进程的EGID对象所有者或创建者的GID,或者进程所属群组中某个群组的GID就是对象所有者或创建者的GID,那么在存取时检查相应的创建者群组许可比特位。

  • 否则,在存取时检查相应的“其他人”许可比特位。

注意,root或具有所有者或创建者EUID的进程可以设置所有者UID和所有者GID,并能删除对象。更多的信息参见ipc(5)。