ефективен потребителски идентификатор ефективен групов идентификатор

Администриране на локална мрежа

* ефективен потребителски идентификатор (ефективен потребител >

* ефективен групов идентификатор.

Реалният потребителски идентификатор е цяло число, представляващо собственика на процеса. Реалният идентификатор на групата е цяло число, указващо групата, към която принадлежи потребителят, създал процеса. Командата id показва и двете стойности.

u > % grep 513 /etc/passwd

torry:EqqHevH:513:20:Torry Ho,[44MY],474-1969 ,:/home/torry:/usr/bin/csh

Ефективният потребителски и групов идентификатор на процес позволява на процеса да осъществява достъп до файлове или да изпълнява програми като потребител с идентификатор, равен на ефективния. Обикновено реалните и ефективните идентификатори на процеса са еднакви, но не винаги. Когато ефективният идентификатор е нула, процесът започва да прави системни повиквания като системен мениджър.

Ефективният потребителски идентификатор и груповият идентификатор остават зададени, докато:

* стига да не бъдат заменени от системното извикване exec() на програмата c

набор от битове setuid или setgid.

* докато ефективната, реална или запазена група и потребителски идентификатори не бъдат зададени от системните извиквания setuid(), setgid(), setresuid().

Всеки процес, с изключение на системните процеси като init и swapper, принадлежи към група процеси. Когато се създаде задание, обвивката присвоява една и съща група процеси на всички процеси в заданието. След това сигналите могат да бъдат разпространени до всички процеси в групата, което е предимството на контрола на работата. Всяка група процеси се идентифицира с цяло число, наречено ID на група процеси (PGID). PGID на група процеси е равен на PID на лидера на групата - създателягрупи. Всички процеси в група имат един и същ GID. PGID не може да се използва от системата, докато групата процеси е жива. Животът на група процеси се определя като период от време между създаването на групата и момента, в който процесът напусне групата. Процесът напуска групата, ако:

* когато друг процес извиква функциите wait() или waitpid() на неактивен процес.

* при извикване на системните извиквания на setsid или setpgid.

Списъци за групов достъп

Всеки процес има до NGROUPS_MAX списъка с групи, към които може да принадлежи.

NGROUPS_MAX е дефиниран в /usr/include/limits.h и обикновено е 20. На процес е разрешен достъп до файлове с групови разрешения от който и да е списък на групата. Списъци за достъп. Груповите разрешения се контролират от командата chgrp.

Всеки процес е член на сесия. Всички процеси, стартирани след влизане, принадлежат към една и съща сесия. Процесът принадлежи към същата сесия като неговия родител. Процес може да промени сесия с помощта на системното извикване setsid() и този процес ще бъде лидер на сесията. Животът на една сесия е времето от момента на нейното създаване до края на последния процес.

Процеси и взаимодействие на терминала.

Всяка сесия има контролен терминал. Лидерът на сесията, свързан към управляващия терминал, се нарича също контролен процес. Изключение правят процесите демон (cron, inetd, ...), които нямат управляващ терминал. Всички процеси, принадлежащи към една и съща сесия, използват управляващия терминал като стандартен вход, изход и грешка. Във всеки даден момент само една група процеси в сесия може да не работи във фонов режим и има изключителни права да работи с управляващия терминал.

Опити за четене от фоновата групапроцеси

Опити за четене от фонова група процеси

Ако процес във фонова група се опита да пише в управляващ терминал, групата процеси получава сигнал SIGTTOU, който по подразбиране спира процеса.

Един процес може да създаде друг чрез:

* паралелно изпълнение на друга програма

* изпълнение на друга програма и изчакване да приключи

На системно ниво се създава процес по време на системно повикване fork() или vfork().

Много често, след като извика fork(), процес ще изпълни exec() на друга програма, която ще презапише кодовия сегмент и данните с новия процес.

Системните извиквания fork() и vfork() карат процеса да наследява децата на всички отворени файлови дескриптори. За системни параметри дефинирайте ограничението за броя на отворените файлове на процес: maxfiles и maxfiles_lim. Параметърът maxfiles определя меко ограничение за това колко отворени файлове може да има един процес. Мекият лимит е наследен от извикванията fork() vfork(). Параметърът maxfiles_lim дефинира твърдо ограничение за броя отворени файлове на процес. maxfiles трябва да е по-малко или равно на maxfiles_lim. Процесът наследява мек лимит от своя родител, който може да бъде намален или увеличен до твърд лимит (само процес с администраторски права може да направи това) с помощта на системното извикване setrlimit().

Процесът приключва, ако:

* Той успешно завърши екзекуцията си

* Процесът се прекрати чрез извикване на системното извикване exit().

* Процесът е получил сигнал с фатално действие

Когато процесът приключи, всички отворени файлове се прекратяват и всички заети ресурси се освобождават, след което процесът умира.

Команди за контрол на процеса.

Можете да управлявате процеси с помощта на HP-UX команди или с помощната програма SAM. Най-често използваните команди ще бъдат описани по-долу.

Командата ps показва следните опции на процеса:

* Потребителско име

* ID на процеса

(затварянето на елемент често не е"> "> "> "> . Но скоро ще се отвори