Page 40 - 2578
P. 40

Ідентифікатор процесу
                                Кожному  новому  процесові  привласнюється  унікальний
                            номер  —  PID.  Фактичне  значення  PID  особливої  ролі  не
                            відіграє: номери призначаються ядром просто один за одним,
                            розпочинаючи  з  0  й  завершуючи  65535.  Коли  номери
                            закінчуються,  ядро  розпочинає  знову  з  0,  пропускаючи
                            процеси, які ще існують в PID.
                                Ідентифікатор батьківського процесу
                                Новий  процес  в  UNIX  утворюється  шляхом  клонування
                            одного  з  існуючих  процесів,  після  чого  текст  (тобто  набір
                            інструкцій  для  процесора)  нового  процесу  замінюється  на
                            текст  програми,  котру  цей  процес  має  виконати.  В  UNIX
                            вихідний  процес  називають  батьківським,  а  його  клон  –
                            породженим, або дочірнім.
                                Окрім  власного  ідентифікатора  PID,  кожен  процес  має
                            атрибут свого батьківського процесу – PPID.
                                Ідентифікатор користувача і групи
                                Кожен  процес  має  UID  –  ідентифікаційний  номер
                            користувача,  який  створив  даний  процес.  Вносити  зміни  в
                            процес  можуть  лише  його  творець  та  привілейований
                            користувач  (root).  В  процесі  також  є  EUID  –  це  так  званий
                            «ефективний»  UID.  Він  використовується  для  того,  щоби
                            визначити,  до  яких  ресурсів  в  процесі  є  право  доступу.
                            Зазвичай  EUID  та  UID  збігаються.  Розрізнюються  вони  для
                            програм,  в  яких  установлено  біт  зміни  ідентифікатора
                            користувача (так звані suid-програми).
                                Аналогічно,  GID  —  ідентифікаційний  номер  групи
                            користувача,  котрий  створив  даний  процес,  EGID  —
                            «ефективний»  GID.  Коли  процес  запускається,  його  GID
                            дорівнює  GID  батьківського  процесу.  Якщо  процес  спробує
                            звернутися до файла, на який у власника немає прав доступу,
                            ядро  перевірить,  чи  можна  дозволити  звертання  на  підставі
                            EGID.

                                                           39
   35   36   37   38   39   40   41   42   43   44   45