Jądro przechowuje pozwolenia obiektów IPC w strukturze typu ipc_perm. Wewnętrzna struktura kolejki wiadomości msg_perm jest właśnie takiego typu, który zadeklarowany jest w linux/ipc.h następująco:
struct ipc_perm
{
key_t key;
ushort uid; /* euid i egid właściciela */
ushort gid;
ushort cuid; /* euid i egid twórcy */
ushort cgid;
ushort mode; /* tryby dostępu, zobacz flagi trybów poniżej */
ushort seq; /* numer sekwencji użycia slotu (slot usage sequence number) */
};
Raczej nietrudno odgadnąć przeznaczenie poszczególnych członków. Klucz przechowywany razem z obiektem zaiera informacje na temat twórcy oraz właściciela obiektu ( mogą się różnić ). Ósemkowe prawa dostępu są również tutaj przechowywane; jako unsigned short. Mamy tu również sekwencję użycia slotu na końcu. Za każdym razem gdy obiekt IPC zamykany jest via wywołanie systemowe ( jest niszczony ) wartość ta zwiększana jest przez maxymalną liczbę obiektów IPC mogących przebywać w systemie. Nie przejmuj się tą wartością.
UWAGA:Istnieje wspaniała dyskusja na ten temat, oraz na temat powodu takiego działania związanego z bezpieczeństwem systemu w książce Richarda Stevensa, UNIX Network Programming, pp. 125.