XSI IPC 为每一个 IPC 结构设置了一个 ipc_perm 结构,该结构规定了权限和所有者
struct ipc_perm
{
uid_tuid;// owner's effective user id
gid_tgid;// owner's effective group id
uid_tcuid;// creator's effective user id
gid_tcgid;// creator's effective group id
mode_tmode;// access modes
...
...
}
各个系统对 ipc_perm 结构的实现方式不同,但是上述字段是必备的成员
该结构定义在 sys/ipc.h 中
可以通过调用 msgctl、semctl 活 shmctl 修改 uid、gid 和 mode 字段,但是调用者必须是 IPC 结构的创建者或超级用户
mode 取值
XSI IPC 的权限设定和 chmod 和 chown 函数的 mode 参数非常类似XSI IPC 权限权限mode
用户读0400
用户写(更改)0200
组读0040
组写(更改)0020
其他读0004
其他写0002
注:上表中使用了两组术语,是因为消息队列和共享存储使用“读”和“写”,而信号量使用“读”和“更改”(alter)