next up previous contents
Next: WYWOŁANIE SYSTEMOWE: msgget() Up: Struktury danych: Wewnętrzne i Previous: Struktura msqid_ds w jądrze   Contents

Struktura ipc_perm w jądrze

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.




2000-03-01


Poltronic