Если вы никогда не редактировали файлы, то попробуйте сделать это сейчас. Для примера можно изменить время ожидания выбора пользователем способа загрузки Linux: с жесткого диска или дискеты. Конечно же, с винчестера я загружаюсь намного чаще, включаю компьютер и ухожу готовить кофе. В дальнейшем мы не будем останавливаться на этом процессе так подробно.
В конфигурационных файлах Linux есть понятие комментария. Это текст, который программа просто игнорирует, и вы можете писать в нем любые пояснения или временно отключать какие-то параметры. Комментарий начинается с символа "#". Всем, что находится после этого символа, программа пренебрегает. Например:
# Это комментарий
boot=/dev/hda
timeout=300 # Это комментарий, показывает время загрузки
# lba32
default=linux-2.4.18 # Это комментарий, ОС по умолчанию
В этом примере первая строка начинается с символа "#", и она вся будет проигнорирована. В третьей строке комментарий стоит после указания параметра. Это значит, что сам параметр будет прочитан, а текст пояснения после него будет пропущен.
В четвертой строке перед lba32 стоит знак "#", значит этот параметр будет проигнорирован и воспринят как комментарий.
Пояснения очень удобны для того, чтобы временно отключать какие-либо опции. Вы можете просто удалить параметр и забыть, как он был написан, но если вы превратили его в комментарий, то для возврата достаточно убрать знак "#", и параметр заработает.
С помощью утилиты LILO можно защитить ваш компьютер от несанкционированной загрузки ОС. Это необходимо, потому что при старте системы можно выполнить команду уже на этапе загрузки. Если злоумышленник получил доступ к вашему компьютеру, то легко может войти в однопользовательском режиме с последующим взломом пароля root или реализовать команду.
Если при загрузке LILO отображается в виде простого текстового приглашения (характерно для дистрибутивов Red Hat), то необходимо ввести имя загружаемой системы (linux), потом ключевое слово init=
и команду:
Linux Boot: linux init=команда
Чтобы хакер не смог запустить систему, необходимо защитить LILO с помощью пароля. Для этого в конфигурационном файле после ключевого слова image
добавьте строку:
password=пароль
Вот пример задания пароля qwerty на загрузку:
image=/boot/vmlinuz-2.4.18-5asp
password=qwerty
initrd=/boot/initrd.2.4.18-5asp.img
label=linux-2.4.18
root=/dev/hda2
read-only
Если на вашем компьютере установлены разные варианты системы, то необходимо для каждого из них указывать пароль. В следующем примере LILO позволяет загружать два ядра, и для обоих вводится свой пароль:
image=/boot/vmlinuz-2.4.18-5asp
password=qwerty
initrd=/boot/initrd.2.4.18-5asp.img
label=linux-2.4.18
root=/dev/hda2
read-only
image=/boot/vmlinuz-2.6.2
password=123456
initrd=/boot/initrd.2.6.2.img
label=linux-2.6.2
root=/dev/hda2
read-only
О конфигурировании LILO с двумя ядрами мы поговорим в разд. 3.8.4.
Если добавить параметр password
до описания image
, то указанный пароль будет действовать для всех ОС и ядер, загружаемых с помощью LILO.
Но пароль запрещает только основную загрузку, а возможность выполнения команд при старте системы сохраняется. Чтобы сделать и это невозможным, добавьте в конфигурационный файл lilo.conf после объявления пароля строку С ключевым словом restricted
:
image=/boot/vmlinuz-2.4.18-5asp
password=qwerty
restricted
initrd=/boot/initrd.2.4.18-5asp.img
label=linux-2.4.18
root=/dev/hda2
read-only
Чтобы внесенные в файл изменения вступили в силу, необходимо запустить в командной строке директиву lilo
. Таким образом, новые параметры будут записаны в загрузочную область и начнут действовать при следующем старте системы.
3.2.3. init
С помощью LILO
запускается программа загрузки ОС, которая настраивает все необходимое оборудование, загружает драйверы и монтирует жесткие диски. По окончании этого процесса с винчестера запускается программа init, которая завершает загрузку.
У программы init, как и у большинства других утилит Linux, есть свой конфигурационный файл, в котором можно производить определенные настройки (листинг 3.2). Этот файл называется inittab и расположен в папке /etc (полный путь /etc/inittab).
#
# inittab This file describes how the INIT process
# should set up
# the system in a certain run-level.
#
# Author: Miquel van Smoorenburg,
# <miquels@drinkel.nl.mugnet.org>
# Modified for RHS Linux by Marc Ewing and
# Donnie Barnes
#
# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not
# have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
# id:5:initdefault:
# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit
# What to do in single-user mode.
~~:S:wait:/sbin/sulogin
10:0:wait:/etc/rc.d/rc 0
11:1:rwait:/etc/rc.d/rc 1
12:2:wait:/etc/rc.d/rc 2
13:3:wait:/etc/rc.d/rc 3
14:4:wait:/etc/rc.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdeclass="underline" /sbin/shutdown -t3 -r now
# When our UPS tells us power has failed,
# assume we have a few minutes
# of power left. Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed
# and your
# UPS connected and working correctly.
pf::powerfaiclass="underline" /sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"