Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Акуленок_часть1.doc
Скачиваний:
41
Добавлен:
13.11.2019
Размер:
1.43 Mб
Скачать

3.4.4. Терминальная линия

Терминальная линия (TТУ) – это терминал, ассоциированный с процессом, если такой существует. Большинство процессов имеют связанный с ними управляющий терминал. Этот терминал определяет компоновку по умолчанию стандартного файла (или канал ввода), стандартного файла вывода и стандартного файла ошибок, Когда пользователь вводит какую–либо команду из shell, его терминал, как правило, становится управляющим терминалом процесса.

Процессы–демоны не имеют ассоциированного терминала.

3.4.5. Реальный и эффективный идентификаторы пользователя

Реальный идентификатор пользователя (Real User ID – RUID) – это идентификационный номер пользователя, который инициировал процесс. Эффективный или действующий идентификатор (Effective User ID – EUID) представляет собой идентификатор пользователя, связанного с процессом. Он служит для определения прав доступа процесса к системным ресурсам (в первую очередь к ресурсам файловой системы). Обычно реальный и эффективный идентификаторы эквивалентны, т.е. процесс имеет в системе те же права, что и пользователь, запустивший его. Но эффективный идентификатор пользователя может отличаться от реального идентификатора пользователя. Для этого устанавливается флаг SUID (Set User ID), что дает возможность задать процессу более широкие права, чем права пользователя. При этом эффективному идентификатору присваивается значение идентификатора владельца исполняемого файла (например, администратора). Подобная установка делается тогда, когда вы хотите, чтобы программа выполнялась с особыми привилегиями, но привилегии пользователя оставались бы прежними.

Вносить изменения в процесс могут только его создатель и привилегированный пользователь. Система учета относит на счет создателя все ресурсы, которые использует процесс.

Идентификатор пользователя наследуется задачами, которые запускает пользователь, и файлами, которые он создает. По этому идентификатору система проверяет пользовательские права. Суперпользователь имеет UID=0, что дает ему неограниченные права в системе.

3.4.6. Реальный и эффективный идентификаторы группы

Реальный идентификатор группы (Real Group ID – RGID) равен идентификатору первичной или текущей группы пользователя, запустившего процесс. Эффективный идентификатор группы (Effective Group ID – EGID) служит для определения прав доступа к системным ресурсам по классу доступа группы. Так же, как и для эффективного идентификатора пользователя, возможна его установка равным идентификатору группы владельца исполняемого файла (флаг SGID).

Допустимые идентификаторы групп указываются в файле /etc/group и в поле GID файла /etc/passwd. Когда процесс запускается, его GID устанавливается равным GID родительского процесса.

В некоторых системах процесс может относиться к нескольким группам. В этом случае GID представляет собой просто список идентификаторов групп. Если пользователь попытается получить доступ к какому–либо ресурсу, весь список проверяется на предмет того, принадлежит ли пользователь к группе, членам которой разрешается использовать данный ресурс.

Техника идентификаторов используется также при группировании процессов. Каждый процесс (за исключением системных процессов, таких, как init и swapper) является членом группы (process group). Когда вы создаете задание (job), Shell назначает всем процессам в задании идентификатор группы процессов (GID – process group ID). Сигналы (это специальные системные вызовы UNIX) могут распространяться по всем процессам в данной группе. Это очень важная особенность в управлении заданиями, когда все родственные процессы в задании могут получать посылаемые им сигналы.