Использование битов setuid и setgid — КиберПедия 

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Использование битов setuid и setgid

2021-01-29 86
Использование битов setuid и setgid 0.00 из 5.00 0 оценок
Заказать работу

 

Есть важные случаи, в которых действующая как программа должна безвозвратно изменить все три значения действительного, эффективного и сохраненного set‑user ID на ID обычного пользователя. Наиболее очевидным случаем является программа, которую вы используете (либо непосредственно, либо удаленно) каждый раз при регистрации в системе GNU/Linux или Unix. Имеется иерархия программ, как очерчено на рис. 11.1.

Рис. 11.1. От через через к shell

Код для слишком сложен, чтобы показать здесь, поскольку он имеет дело с рядом задач, не имеющих отношения к текущему обсуждению. Но мы можем очертить шаги, которые происходят во время регистрации, следующим образом:

1. является самым первым процессом. Его PID равен 1. Все другие процессы являются его потомками. Ядро вручную создает процесс 1 во время загрузки и запускает в нем. Он действует с действительным и эффективным UID, равными нулю, т.е. как.

2. читает, который, помимо прочих вещей, сообщает о том, на каких устройствах он должен запустить процесс. Для каждого такого устройства (такого, как консоль, последовательные терминалы или виртуальные консоли в системе GNU/Linux) порождает новый процесс. Этот новый процесс использует затем для запуска (от «get tty» («получить tty», т.е. терминал)). На многих системах GNU/Linux эта команда называется. Программа открывает устройство, сбрасывает его состояние и выводит приглашение ''.

3. По получении регистрационного имени выполняет. Программа ищет имя пользователя в файле паролей, запрашивает пароль и проверяет его. Если пароль подходит, процесс продолжается.

4. изменяет домашний каталог пользователя, устанавливает начальное окружение, а затем устанавливает начальный набор открытых файлов. Он закрывает дескрипторы файлов, открывает терминал и использует для копирования дескрипторов файла терминала в 0, 1 и 2. Вот откуда происходят дескрипторы уже открытых файлов стандартного ввода, стандартного вывода и стандартной ошибки.

5. Затем использует для установки дополнительного набора групп, для установки значений действительного, эффективного и сохраненного set‑group ID в соответствующее значение группы пользователя, и наконец, для установки всех трех значений действительного, эффективного и сохраненного set‑user ID в соответствующие значения для регистрирующегося пользователя. Обратите внимание, что вызов должен быть последним для того, чтобы другие два вызова завершились успешно.

6. Наконец, вызывает зарегистрированную оболочку пользователя. Оболочки в стиле Борна после этого читают файлы и, если они существуют. Затем оболочка выводит приглашение.

Обратите внимание, как один процесс меняет свою сущность от системного процесса до процесса пользователя. Каждый потомок начинается как копия. Используя, тот же самый процесс выполняет различные задания. Вызвав для перехода от к обычному пользователю, процесс в конечном счете поступает непосредственно для работы пользователя. Когда вы выходите из оболочки (посредством CTRL‑D или), процесс попросту завершается. Затем возобновляет цикл, порождая новый, который выводит новое приглашение ''.

 

ЗАМЕЧАНИЕ. Открытые файлы остаются открытыми и доступными для использования, даже после изменения процессом своих UID или GID. Таким образом, программы с setuid должны заранее открыть все нужные файлы, изменить их ID на ID действительного пользователя и продолжить оставшуюся часть работы без дополнительных привилегий

 

В табл. 11.1 приведена сводка шести стандартных функций для манипулирования значениями UID и GID.

 

Таблица 11.1. Сводка API для установки действительных и эффективных ID[120]

 

 Функция Устанавливает Постоянно Обычный пользователь Root
  E Нет Из R, E, S Любое
  E Нет Из R, E, S Любое
  Root: R,E,S Другие: E Root: да Другие: нет Из R, E Любое
  Root: R,E,S Другие: E Root: да Другие: нет Из R, E Любое
  E, может установить R Нет Из R, E Любое
  E, может установить R Нет Из R, E Любое

 

 


Поделиться с друзьями:

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.009 с.