id:5:initdefault:
si::sysinit:/etc/rc.d/rc.sysinit
10:0:wait:/etc/re.d/rc 0
11:1:wait:/etc/re.d/rc 1
12:2:wait:/etc/re.d/rc 2
13:3:wait:/etc/re.d/rc 3
14:4:wait:/etc/re.d/rc 4
15:5:wait:/etc/re.d/rc 5
16:6:wait:/etc/re.d/rc 6
# Things to run in every runlevel.
ud::once:/sbin/update
# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown –t3 –r now
pf::powerfail:/sbin/shutdown –f –h +2 "Power Failure; System Shutting Down"
pr:12345:powerokwait:/sbin/shutdown –c "Power Restored; Shutdown Cancelled"
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
# Run xdm in runlevel 5
# xdm is now a separate service
x:5:respawn:/etc/X11/prefdm –nodaemon
Рассмотрим подробно приведенный пример. Самая первая строка определяет уровень выполнения по умолчанию. Очень рекомендую вам установить это значение. Во-первых, вводить уровень загрузки каждый раз при запуске системы не очень удобно. Во-вторых, если не установлен уровень выполнения по умолчанию, система не сможет запускаться автоматически: при загрузке она будет ждать ввода номера уровня выполнения. Для загрузки системы подойдут два уровня: или 3, или 5. Я рекомендую использовать третий уровень выполнения, использовать уровень выполнения 5 нужно только в том случае, если вы хотите, чтобы система X Window запускалась автоматически при старте системы.
Затем указываются программы, которые будут выполнены во время системной инициализации (sysinit). В нашем случае будет запушен сценарий загрузки системы /etc/re.d/rc.sysinit.
Далее следуют описания действий для каждого из уровней выполнения. Например, для уровня выполнения номер 5 будет запущен сценарий /etc/re.d/rc с параметром 5. Программа init будет ждать завершения процесса /etc/re.d/rc.
Программа /sbin/update будет запускаться на каждом из уровней выполнения один раз.
Реакция на нажатие комбинаций клавиш Ctrl+Alt+Del устанавливается с помощью действия ctrlaltdel. Будет запущена программа shutdown для немедленной (now) перезагрузки (-r) системы. Задержка перед переключением на шестой уровень (перезагрузка) составит три секунды (-t3).
Реакция на перебои с питанием устанавливается с помощью действий powerfail и powerokwait. В качестве реакции на событие powerfail будет запущена программа shutdown для останова системы (-h). Опция –f указывает, что при перезагрузке будет пропущена проверка файловой системы с помощью fsck. Задержка перед переключением на шестой уровень выполнения составит две минуты (+2). На всех активных терминалах пользователи увидят сообщение «Power Failure; System Shutting Down». Если в течение двух минут питание будет восстановлено, запустится программа shutdown для отмены останова системы (-с). На терминалах пользователей будет отображено сообщение «Power Restored; Shutdown Cancelled».
Наглядным примером для действия respawn может послужить система X Window. Можете провести такой эксперимент: перейдите на уровень выполнения 5: init 5
Если уровень 5 уже активен, этого делать, естественно, не нужно. Находясь в системе X Window, нажмите Ctrl+Alt+Backspace — эта комбинация клавиш используется для экстренного останова системы X Window. После останова система X Window будет перезапущена.
5.6. Сценарии загрузки системы
Все Red Hat-подобные системы, в отличие от BSD-подобных (Slackware), используют систему инициализации SysV, хотя и несколько переработанную.
Примечание. Система инициализации —это набор файлов, необходимых для запуска операционной системы. Обычно система инициализации представляет собой сценарии загрузки системы. В процессе развития Unix (см. гл. 1) выделились два основных типа систем — BSD-подобные системы и SysV-совместимые. Первые были совместимы (полностью или частично) с операционной системой BSD, разработанной Калифорнийским университетом, а вторые использовали в качестве своего предка операционную систему Unix System V, разработанную компанией AT&T. Системы инициализации BSD и SysV отличаются набором входящих в них файлов и их назначением.
Запуск и останов демонов осуществляется с помощью сценариев, расположенных в каталоге /etc/re.d/init.d. Демон — это программа, которая в фоновом режиме периодически выполняет какие-нибудь действия. Например, демон ftpd непрерывно проверяет наличие пользовательских запросов на соединение по протоколу FTP.
Сценарии каталога /etc/re.d выполняются автоматически при запуске системы. В этом каталоге есть несколько подкаталогов rcN.d, где N — это номер уровня выполнения. В большинстве случаев у вас будет установлен уровень 5 в качестве уровня по умолчанию. Этот уровень соответствует многопользовательскому режиму с автоматическим запуском системы X Window. В каталоге /etc/rd.d/rc5.d находятся символические ссылки на сценарии, расположенные в каталоге /etc/rc.d/init.d.
Для запуска какого-нибудь демона нужно выполнить соответствующий ему сценарий в каталоге /etc/rc.d/init.d с опцией start. Для останова нужно запустить тот же сценарий, но с опцией stop.
Чтобы обеспечить автоматический запуск какого-нибудь сервера, нужно создать сценарий для его запуска и поместить его в каталоге /etc/rc.d/init.d. Затем, в зависимости от уровня выполнения, в каталоге rcN.d нужно создать символическую ссылку на этот сценарий.
Для выбора демонов, которые будут запускаться автоматически при загрузке системы, обычно используют программу drakconf в операционной системе Linux Mandrake (см. рис. 5.2) или программу setup в ОС Red Hat Linux.
Если вы хотите сами создать сценарий для запуска своего демона, можете воспользоваться приведенным ниже шаблоном (см. листинг 5.3).
Рис. 5.2. Конфигуратор DrakConf
Листинг 5.3. Шаблон для запуска демона#!/bin/bash
# Шаблон для запуска демона
# Подключаем библиотеку функций
. /etc/init.d/functions
# Определяем параметры
case "$1" in
start)
# Запуск демона
echo "Starting my_daemon…"
daemon my_daemon
touch /var/lock/subsys/my_daemon
;;
stop)
# Останов демона
kill proc my_daemon
rm –f /var/lock/subsys/my_daemon
rm –f /var/run/my_daemon.pid
;;
status)
# Выводим статистику работы
;;
restart | reload)
# действия, выполняемые при перезагрузке демона
:
;;
*)
# Произошел вызов без параметров
echo "Usage: my_daemon {start|stop|status|restart|reload}"
exit 1
esac
exit 0
Теперь рассмотрим весь процесс загрузки системы, начиная с самого начала: от включения питания. Итак, вы включаете питание, система выполняет процедуру самотестирования POST (Power On Self Test). Если во время самотестирования ошибок обнаружено не было, из главной загрузочной записи MBR (Master Boot Record) вызывается загрузчик операционной системы. Поиск загрузчика происходит на загрузочных устройствах в соответствии с последовательностью загрузки (Boot Sequence). Данная последовательность определяется в программе настройки компьютера — SETUP. Например, у вас может быть установлена такая последовательность загрузки:
FLOPPY, HDD-0, CDROM
В этом случае система сначала будет искать загрузчик на дискете (диск А, устройство /dev/fd0). Если в дисководе нет дискеты, система перейдет к поиску загрузчика на первом жестком диске (HDD-0, устройство /dev/hda). Если же в дисководе есть дискета, но она не является загрузочной, вы получите соответствующее сообщение об этом. На этом этапе вы можете либо сменить дискету, либо вообще извлечь ее из дисковода, чтобы разрешить системе произвести поиск загрузчика операционной системы на жестком диске. Если и на жестком диске не будет обнаружен загрузчик, система перейдет к следующему элементу загрузочной последовательности — CDROM.
Предположим, что система нашла загрузчик на жестком диске. Загрузчик должен быть корректно установлен, иначе вы получите сообщение о невозможности загрузиться с данного носителя информации (жесткого диска). После этого управление будет передано программе LILO или любому другому загрузчику операционной системы Linux.
Оглавление
-
1 Введение в Linux
-
1.1. Вступительное слово
-
1.2. О Linux
-
1.3. Почему именно Linux?
-
1.4. Область применения Linux-серверов
-
1.5. Как устроена данная книга
-
1.6. Какие сервера бывают и для чего они нужны
-
1.6.1. Сервер локальной сети
-
1.6.2. Шлюз — сервер для доступа в Интернет
-
1.6.3. Сервер удаленного доступа
-
1.7. Что такое сервер? (или Курс Молодого Администратора)
-
1.7.1. Архитектура сети: одноранговая и клиент/сервер
-
1.7.2. Протокол и интерфейс
-
1.7.3. Протокол TCP/IP
-
1.7.4.Системадоменныхимен—DNS
-
1.7.5. Многоуровневая архитектура стека TCP/IP
-
1.7.6. Порты и демоны
-
1.7.7. Структура пакетов IP и TCP
-
1.8. Общие рекомендации
-
1.9. Обзор дистрибутивов Linux
-
1.10. Глоссарий
-
2 Установка системы
-
2.1. Установка Red Hat Linux
-
***
-
***
-
2.2. Установка Linux Mandrake
-
2.3. Установка Linux на компьютер с чипсетом Intel810
-
2.4. Установка нескольких операционных систем
-
2.4.1. Установка Windows 9x и Linux
-
2.4.2. Установка Windows 9x, Windows NT/2000 и Linux.
-
2.4.3. Использование loadlin
-
2.5. Постинсталляционная настройка
-
2.6. Установка программного обеспечения
-
2.6.1.Традиционный способ установки: установка из исходных текстов
-
2.6.2. Программа RPM
-
2.6.3. Программы gnorpm, kpackage, apt
-
2.6.4. Установка из пакетов, содержащих исходный код
-
2.7. Завершение работы операционной системы
-
3 Учетные записи пользователей
-
3.1. Вход в систему
-
3.1.1. Вход в систему под другим именем
-
3.2. Изменение пароля
-
3.3. Идентификаторы пользователя и группы
-
3.4. Создание группы
-
3.5. Удаление и модификация учетных записей
-
3.6. Квотирование
-
3.6.1. Определение ограничений
-
3.6.2. Запрет квоты для пользователя или группы
-
3.6.3. Использование программы linuxconf для определения квот
-
3.7. Сценарий создания пользователей
-
4 Файловая система Linux
-
4.1. Файлы и каталоги. Дерево каталогов
-
4.2. Команды для работы с файлами и каталогами
-
4.2.1. Команды для работы с файлами
-
4.2.2. Команды для работы с каталогами
-
4.3.Ссылки
-
4.4. Стандартные имена устройств в Linux
-
4.5. Стандартные каталоги
-
4.6. Создание файловой системы. Типы файловых систем
-
***
-
4.7. Использование программы fdisk
-
4.8. Программа Disk Drake
-
4.9. Монтирование дисков. Файл/etc/fstab
-
4.10. Создание раздела (файла) подкачки
-
4.11. Использование LILO
-
4.12. Права доступа
-
4.13. Обслуживание файловой системы
-
4.14. Подключение магнитооптического диска
-
4.15. Использование стримера
-
4.15.1. Подключение стримера с интерфейсом SCSI
-
4.15.2. Подключение стримера с интерфейсомFDC
-
4.15.3. Управление стримером
-
4.16. Стратегия резервного копирования
-
4.17. Использование программы cpio
-
4.18. Повышение производительности жесткого диска
-
4.19. Создание массивов RAID
-
4.20. Форматирование дискет в Linux
-
5 Процессы
-
5.1. Системные вызовы fork() и ехес()
-
5.1.1. Общая схема управления процессами
-
5.2. Перенаправление ввода/вывода
-
5.3. Команды управления процессами
-
5.4. Создание расписаний
-
5.5. Уровни выполнения.Программа init
-
5.6. Сценарии загрузки системы
-
5.7. Стандартные файлы протоколов (журналов)
-
5.8. Управление протоколированием
-
5.8.1. Демон Syslogd
-
5.8.2. Сигналы
-
5.8.3. Файл конфигурации
-
5.8.4. Сетевое протоколирование
-
5.8.5. Демон klogd
-
5.8.6. Параметры ядра
-
6 Русификация Linux
-
6.1. Русификация консоли
-
6.2. Русификация системы X Window
-
6.3. Русификация принтера
-
7 Настройка сети
-
7.1. Установка сетевой платы. Настройка параметров сети
-
7.2. Подключение модема
-
7.3. Подключение к Интернет
-
7.3.1. Терминальный способ
-
7.3.2. PAP- и СНАР-аутентификация
-
7.4. Настройка DSL-соединения
-
7.4.1. Настройка соединения DSL в Linux Mandrake
-
7.4.2. Настройка соединения DSL в другом дистрибутиве
-
7.5. Настройка выделенных линий
-
7.6. Перед настройкой сервера
-
8 Конфигурирование сервера
-
8.1. Суперсерверы inetd и xinetd
-
8.1.1. Настройка сервера inetd
-
8.1.2. Настройка tcpd
-
8.1.3. Протокол IPv6
-
8.1.4. Установкаx inetd
-
8.1.5. Настройка xinetd
-
8.1.6. Параметры запуска xinetd
-
8.1.7. Пример файла конфигурации /etc/xinetd
-
8.2. Удаленный доступ: ssh и telnet
-
***
-
8.3.Маршрутизация
-
8.4. Настройка DHCP (Dynamic Host Configuration Protocol)
-
8.5. Подсчет трафика. Программа MRTG
-
***
-
8.6. Сетевая файловая система (NFS)
-
8.6.1. Настройка сервера NFS
-
8.6.2. Настройка клиента NFS
-
8.7. Поисковый сервер ht:/Dig
-
8.8. Прокси-сервер Socks5
-
8.8.1.Установка и настройкасервера
-
8.8.2. Альтернативные серверы Socks5
-
8.8.3. Настройка клиента Socks5 (licq)
-
8.9. Система обнаружения и защиты от вторжения
-
8.9.1. Что такое LIDS?
-
8.9.2. Установка LIDS
-
8.9.3. Базовая настройка
-
8.9.4. Правила доступа
-
8.9.5. Администриров ание LIDS
-
9 Протокол Server Message Block (SMB)
-
9.1. Установка Samba
-
9.2. Настройка файлового сервера
-
9.3. Доступ к SMB-ресурсам из Linux
-
9.4. Доступ к принтеру Linux для Windows-машин
-
9.5. Доступ к Windows-принтеру с компьютеров, работающих под Linux
-
9.6. Пример файла smb.conf
-
9.7. Конфигуратор SWAT
-
10 Служба имен — DNS
-
10.1. Настройка сервера DNS
-
10.2. Кэширующий сервер DNS
-
10.3. Настройка дополнительного сервера DNS
-
10.4. Команды управления сервером DNS
-
10.5. Использование nslookup
-
11 Настройка FTP
-
11.1. Сервер FTP wu-ftpd
-
11.1.1. Файл ftpaccess
-
11.1.2. Файл ftphosts
-
11.1.3. Файл ftpusers
-
11.1.4. Файл ftpgroups
-
11.1.5. Файл ftpconversions
-
11.1.6. Файл xferlog
-
11.2.СерверProFTP
-
11.2.1. Файл /etc/proftpd.conf
-
11.2.2. Ограничение доступа
-
11.2.3. Файл .ftpaccess
-
11.3. Организация анонимного FТР-сервера
-
11.4. Вспомогательные программы
-
11.5. Виртуальный узел FTP
-
12 Сервер Apache
-
12.1. Установка Apache
-
12.2. Файлы конфигураци исервера
-
12.2.1. Файл httpd.conf
-
12.2.2. Конфигурирование Apache с помощью netconf
-
12.3. Каталоги пользователей
-
12.4. Виртуальный HTTP-сервер
-
12.4.1. Виртуальные серверы с идентификацией по имени
-
12.4.2. Виртуальные серверы с идентификацией по IP-адресу
-
12.5. SSL и Apache
-
12.5.1. Установк а SSL
-
12.5.2. Подключение SSL к Apache
-
12.5.3. Генерирование сертификатов
-
12.6. Пример файла httpd.conf
-
***
-
***
-
***
-
12.7. Перекодирование русскоязычных документов «на лету»
-
13 Почтовый сервер
-
13.1. Настройка sendmail
-
***
-
13.2. Аутентификация в sendmail
-
13.3. Настройка почтовых клиентов
-
13.4. Другие программы для работы с электронной почтой
-
13.5. Создание списка рассылки
-
14 Бастионы
-
14.1. Применение IPChains
-
14.2. Настройка IPChains
-
14.3. Различные примеры
-
14.3.1. Пакеты SYN
-
14.3.2. Фрагментация пакетов
-
14.3.3. Пинг смерти
-
14.3.4. IР-спуфинг
-
14.3.5. Фильтрация фрагментированных бомб
-
14.4. Практический пример
-
***
-
14.5. IPTables
-
15 Прокси-сервер SQUID
-
15.1. Что такое SQUID?
-
15.2. Установка SQUID
-
15.3. Настройка SQUID
-
15.4. Запуск SQUID
-
15.5. Формат файла squid.conf
-
15.5.1. Параметры сети
-
15.5.2. Параметры соседей
-
15.5.3. Управление кэшем
-
15.5.4. Протоколирование
-
15.5.5. Параметры внешних программ
-
15.5.6. Списки ACL
-
15.5.7. Параметры доступа
-
15.5.8. Параметры администрирования
-
15.6. Отказ от рекламы. Баннерный фильтр
-
15.7. Разделение канала
-
15.8. Программы для учета трафика
-
15.9. Настройка клиентов
-
16 Установка MySQL
-
16.1. Установка сервера
-
16.2. Клиентская часть
-
16.3. Связка Apache + PHP + MySQL
-
16.3.1. Первый способ: из пакетов RPM
-
16.3.2. Второй способ: из исходных текстов
-
17 Практические примеры. Обратный звонок
-
17.1. Настройка шлюза
-
17.1.1. Настройка ядра
-
17.1.2. Настройка сети
-
17.1.3. Конфигурирование IpChains
-
17.1.4. Настройка DNS
-
17.1.5. Настройка Squid
-
17.2. Настройка Dial-In сервера
-
17.2.1. Установка программного обеспечения
-
17.2.2. Настройка mgetty
-
17.2.3. Настройка ррр
-
17.2.4. Включение IP Forwarding
-
17.2.5. Второй вариант настройки
-
17.2.6. Если что-то не работает…
-
17.2.7. Настройка Windows-клиентов
-
17.2.8. Дополнительная литература
-
17.3. Обратный звонок
-
17.3.1. Что такое callback?
-
17.3.2. Настройка сервера. Способ1
-
17.3.3. Настройка сервера.Способ 2
-
17.3.4. Настройка клиен тов. Способ 1
-
17.3.5. Настройка клиентов. Способ 2
-
18 Компилирование ядра
-
18.1. Параметры ядра
-
18.1.1. Параметры корневой файловой системы
-
18.1.2. Управление RAMDISK
-
18.1.3. Управление памятью
-
18.1.4. Другие параметры ядра
-
18.2. Конфигурирование ядра
-
18.2.1. Processor type and features
-
18.2.2. Loadable module support
-
18.2.3.General setup
-
18.2.4. PnP support
-
18.2.5. Block devices
-
18.2.6. Networking options
-
18.2.7. SCSI support
-
18.2.8. Network device support
-
18.2.9.IrDA, USB support
-
18.2.10. Filesystems
-
18.2.11. Sound
-
18.3. Компилирование ядра
-
19 Полезные команды и программы. Создание RPM-пакетов
-
19.1. Общие команды
-
***
-
19.2. Команды для работы с файлами
-
19.3. Команды для работы с Интернет
-
***
-
19.4. Обработка текста
-
***
-
***
-
19.5. Создание RPM-пакетов
-
19.6. Использование редактора vi
-
19.7. Интерпретатор команд bash
-
19.7.1. Каналы и списки
-
19.7.2. Перенаправление ввода/вывода
-
19.7.3. Подоболочки
-
19.7.4. Переменные и массивы
-
19.7.5. Подстановка команд и арифметических выражений
-
19.7.6. Управляющие структуры и циклы
-
19.7.7. Подстановка переменных
-
19.7.8. Функции
-
19.7.9. Обработка сигналов и протоколирование
-
20 Графический интерфейс пользователя. Система X Window
-
20.1. Установка и запуск системы
-
20.2. Конфигурационный файл XF86Config
-
20.3. Настройка X Window
-
20.4. Конвертирование шрифтов Windows
-
20.5. Оконная среда KDE
-
20.6. Оконная среда GNOME
-
20.7. Настройка Х-терминала
-
21 Linux в игровом зале
-
21.1. Достоинства и недостатки
-
21.2. Выбор аппаратного обеспечения для игрового зала
-
21.3. Установка драйверов для видеокарт nVidia
-
21.4. Установка Windows-эмулятора wine
-
21.5. Запуск игр с помощью эмулятора wine
-
21.6. Средства мультимедиа
-
21.7. Администрирование зала
-
21.7.1. Доступ к Интернет
-
21.7.2. Управление пользователями
-
21.7.3. Ограничение доступа пользователя
-
22 Антивирусная защита
-
22.1. Антивирусные программы
-
22.1.1. Программа DrWeb для Linux
-
22.1.2. Программа AVP для Linux
-
22.2. Проверка входящей и исходящей почты
-
23 Прочие возможности
-
23.1. SATAN
-
23.2. Защита от спама
-
23.3. Ограничение системных ресурсов
-
24 Вместо заключения
-
Приложения
-
Приложение А. Конфигурационные файлы Linux
-
***
-
***
-
***
-
Приложение Б. Общие параметры программ для системы X Window
-
Приложение В. Компактное и нормальное ядра
-
***
-
***
-
***
-
***
-
***
-
***
-
***
-
***
-
Приложение Г. Ссылки
-
***
-
***