Many Unix-like systems, including
Linux and System V systems, support System V interprocess communication
(IPC) objects.
Indeed System V IPC is required by the
Open Group's Single UNIX Specification, Version 2
[Open Group 1997].
System V IPC objects can be one of three kinds:
System V message queues, semaphore sets, and shared memory segments.
Each such object has the following attributes:
read and write permissions for each of creator, creator group, and
others.
creator UID and GID - UID and GID of the creator of the object.
owning UID and GID - UID and GID of the owner of the
object (initially equal to the creator UID).
When accessing such objects, the rules are as follows:
if the process has root privileges, the access is granted.
if the process' EUID is the owner or creator UID of the object,
then the appropriate creator permission bit is
checked to see if access is granted.
if the process' EGID is the owner or creator GID of the object,
or one of the process' groups is the owning or creating GID of the object,
then the appropriate creator group permission bit is checked for access.
otherwise, the appropriate ``other'' permission bit is checked
for access.
Note that root, or a process with the EUID of either the owner or creator,
can set the owning UID and owning GID and/or remove the object.
More information is available in ipc(5).