Лекции     Книги     Рефераты    
Диплом, курсовая на заказ

Linux. Процесс загрузки (часть 2)

news date Фев.05.2009    categories Web-программирование > UNIX    comments (0)

Пришло время рассмотреть действия пользователя в случае ручной загрузки системы.
Для того чтобы запустить ОС в режиме одного пользователя, необходимо в консольном режиме установить параметр загрузки ядра -s (single). Ядро при создании процесса с идентификатором № 1 (init) передает ему этот параметр, а уже init передает информацию дальше специальной утилите sulogin, являющейся аналогом команды авторизации пользователей login, только для суперадминистратора.

В ряде дистрибутивов вход пользователя root в графическом режиме запрещен, поэтому войти в систему суперпользователем можно только в консоли. Впрочем, как в однопользовательском, так и в многопользовательском режимах. Подчеркнем, что использование системы в режиме суперпользователя является потенциально опасной процедурой и должно производиться только при крайней необходимости. В остальных случаях следует пользоваться командой su, позволяющей обычному пользователю повысить свои привилегии.

Но мы отвлеклись. Команды sulogin требует ввода пароля суперпользователя. В случае успешной идентификации система запускает командную оболочку, определенную в переменной PATH для root (в большинстве дистрибутивов это оболочка Борна — bash (Borne Again Shell) или sh). Если вы не хотите производить авторизацию суперадминистратором, нажмите сочетание клавиш Ctrl+D, и система продолжит процесс загрузки в многопользовательском режиме.

В режиме single user система отвечает на команды практически таким же образом, что и в обычном, многопользовательском, режиме. Но есть и отличия. В частности, в дистрибутивах, основанных на Debian, в Mandriva и в SuSE в однопользовательском режиме по умолчанию монтируется только корневой раздел, а остальные пользователю предлагается подключить самостоятельно.
Однопользовательский режим очень удобен для восстановления работоспособности упавшей системы, но в то же время это и огромная уязвимость любой ОС Linux, поскольку до сих пор в большинстве дистрибутивов для входа в систему в режиме single user по умолчанию не требуется ввода пароля. Соответственно, злоумышленник, получивший доступ к локальной машине, может легко загрузиться в режиме наивысших привилегий и сделать с системой все, что захочет. Поэтому следует сразу же после установки системы запрещать любой вход в нее без ввода пароля. Справедливости ради стоит заметить, что если злоумышленник получает доступ в помещение с машиной, то от ОС уже мало что зависит. Снять жесткий диск и загрузиться с Live-CD/LiveUSB на другом компьютере, ему уже ничто не помешает. Но облегчать ему работу не стоит.

Ряд дистрибутивов в режиме одного пользователя монтирует системный каталог только в режиме чтения. В этом есть определенное неудобство: часть программ, записывающих свои временные данные в каталог /tmp, не сможет полноценно функционировать. Поэтому для запуска, к примеру, текстового редактора vim, необходимо в ручном режиме размонтировать и снова смонтировать в режиме чтения и записи системный каталог. Для этого нужно в однопользовательском режиме набрать команду mount -о rw, remount /.
В дистрибутивах семейства Red Hat (RHEL, Fedora, CentOS и других) при загрузке в single user режиме перед приглашением к авторизации процесс init попытается примонтировать все файловые системы в компьютере. Данное решение, с одной стороны, является достаточно привлекательным, однако с другой, при каких-либо ошибках в архитектуре файловой системы может стать источником проблем.

В ходе автоматической загрузки ОС запускает команду fsck, которая служит для проверки корректности состояния файловой системы и, при необходимости, автоматического восстановления ее до непротиворечивого состояния. В single-режиме данная команда автоматически не запускается, поэтому для коррекции файловых систем команду придется вводить самостоятельно.
После завершения работы командой оболочки однопользовательского режима ОС продолжает загрузку, меняя режим на многопользовательский.
Следующий шаг загрузки — выполнение rc-сценариев запуска. На этом этапе систему уже можно считать загруженной. Сценарии — это обыкновенные скрипты, которые запускаются демоном init в зависимости от настроек системы.
После того, как init запустит все сценарии, и они отработают, выполнив все записанные в них команды, загрузку системы можно считать законченной. Однако войти в систему все еще невозможно. Для того чтобы операционка предложила пользователю авторизоваться в системе, необходим запуск процесса getty, который будет следить за командами в терминале.
При запуске системы в графическом режиме кроме getty процесс init запускает процессы регистрации пользователей: xdm, gdm или kdm.

Также заметим, что и после полной загрузки системы процесс под номером 1 не прекращает свою работу. Он обладает несколькими уровнями выполнения, допускающими пользовательские процессы к тем или иным местам системы. Но об этом будет идти речь в следующих статьях.

Обсуждения

Нет комментариев к “Linux. Процесс загрузки (часть 2)”

Добавить комментарий

Вы должны войти



© 2009 - 2010 | Webteach.ru | Образовательный портал