ru/
Издательство «ЛОРИ»
www.books-shop.com
Red Hat® Linux* 6 Server
Mohammed J. Kabir
ISBN 0764533371
Переводчик О. Д. Труфанов
Научный редактор М. А. Кузьмин
Корректор Н. Литвинова
Верстка Е. Самбу
WWW.LORYPRESS.RU
www.books-shop.com
Моим преподавателям из Калифорнийского университета Сакраменто
www.books-shop.com
VI
О
Предисловие
www.books-shop.com
Предисловие vii
Благодарности
Прежде всего я хочу поблагодарить Лору Левин за предложение написать
эту книгу. Она была всегда очень любезна и внимательна ко мне.
Эрик Ньюман, мой редактор, показал себя добрым другом во время разра
ботки этой книги. Я не знаю, как бы я смог закончить ее без его терпения, се
рьезной поддержки и понимания. Спасибо, Эрик.
Специальная благодарность Рэндольфу Кэмпбеллу, который убедил меня,
что книга получилась удачной. Проницательные комментарии Рэндольфа,
предложения и советы сделали значительно больше, чем простое исправле
ние моих технических оплошностей. Спасибо, Рэндольф.
Огромная благодарность литературным редакторам Роберту Кэмпбеллу и
Тиму Бореку. Они регулярно переводили мои формулировки с «машинного
языка» на ясный и понятный английский язык.
Терри Эвинг помог написать две главы этой книги. Он работает систем
ным администратором широко известного Интернетпровайдера в районе
Сакраменто, поэтому помог мне глубже понять многие вопросы, которые об
суждаются в книге. Я очень признателен ему за помощь. Спасибо, Терри.
Мой хороший друг Берт Каридад оказал незаменимую помощь в создании
справочника команд этой книги. С ним я познакомился, когда пошел путем
Linux. Последние несколько лет мы оба с огромным удовольствием работали
над созданием условнобесплатного программного обеспечения для Web в
масштабах предприятия. Берт сейчас работает в хорошо известной техноло
гической компании в Сакраменто. Спасибо, Берт.
Шейла Кабир, моя жена, терпит мои попытки одновременно работать в
подающей надежды начинающей Интернеткомпании и одновременно пи
сать о технологиях с открытым исходным кодом. Ее терпение и великолеп
ная улыбка каждый день заставляют меня продолжать работу. Спасибо,
Шейла.
Наконец я благодарю всех сотрудников IDG Books Worldwide, которые
способствовали выходу этой книги. Эти люди превратили несколько компью
терных файлов в прекрасное издание.
Об авторе
Мохаммед Дж. Кабир один из основателей компании Integrated Logic.
Inc., которая специализируется в области разработки программного обеспе
чения на основе Web. Он4 также возглавляет технологическое подразделение
компании. Эксперт по многосерверным сетям Web, операционным системам
UNIX и микропроцессорам, Мохаммед Дж. Кабир является автором книг
«Библия сервера Apache» и «Справочник администратора сервера Apache».
www.books-shop.com
www.books-shop.com
Содержание
www.books-shop.com
X
Сценарий /etc/re.d/rc.sysinit 46
Каталог /etc/re.d/init.d 46
Сценарий /etc/re.d/rc 46
Каталоги /etc/re.d/rc[06].d 48
Сценарий /etc/re.d/rc.local 49
Сценарий /etc/rc.d/rc.serial 49
Загрузка системы 49
Выключение системы 50
Отмена выключения системы 50
Перезагрузка сервера 50
Перезагрузка с помощью Ctrl+Alt+Delete 51
Автоматическое выключение при отказе питания 51
Управление файлами ink 52
Использование chkconfig для управления уровнями выполнения 52
Использование ntsysv для управления уровнями выполнения 53
Использование linuxconf для управления уровнями выполнения 53
Создание новой службы для уровня выполнения 54
www.books-shop.com
Содержание xi
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
xii
О
www.books-shop.com
Содержание xiii
www.books-shop.com
xiv
www.books-shop.com
Содержание XV
www.books-shop.com
xvi
www.books-shop.com
Содержание xvii
www.books-shop.com
www.books-shop.com
Часть 1
Первое знакомство
www.books-shop.com
www.books-shop.com
Глава 1
Почему Red Hat Linux?
В этой главе:
• Краткая история Linux
" Дистрибутивы Linux
• Почему Red Hat Linux лучше остальных дистрибутивов
• Преимущества Red Hat Linux в качестве серверной операционной
системы
• Как получить Red Hat Linux
История Linux
5 октября 1991 г. Линус Бенедикт Торвальдс, аспирант Хельсинкского
университета (Финляндия), опубликовал в группе новостей Usenet
(comp.os.minix) сообщение о созданной им маленькой UNIXподобной
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
4 .', o.$:... l
<Л
www.books-shop.com
Почему Red Hat Linux? 5
v/
Caldera OpenLinux ,
После Red Hat Linux лучшим выбором будет дистрибутив OpenLinux ком
пании Caldera. Я считаю его вторым среди достойных дистрибутивов Linux
для новых пользователей и компаний. Первоначальный дистрибутив Caldera
был создан немецкой группой Linux Support Team (LST), которая позже ста
ла частью Caldera.
Этот дистрибутив Linux использует для распространения пакетов техно
логию управления пакетами (RPM, Red Hat Package Management) компании
Red Hat. Установка OpenLinux похожа на установку Red Hat Linux, но Open
Linux дополнительно позволяет сохранить и восстановить параметры кон
фигурации. Этот дистрибутив предназначен для компаний и предлагает
множество коммерческих пакетов, таких как защищенный Webсервер или
офисный пакет StarOffice (текстовый процессор, программа электронных
таблиц, графический редактор и т.д.), DRDOS (похожая на DOS операцион
ная система, которая может выполняться с помощью программного эмулято
ра DOSEMU), утилиты администрирования NetWare 3.x & 4.x (Administration
Utility) и многое другое. Можно считать этот дистрибутив одной из самых
успешных коммерческих версий Linux.
Так как основными заказчиками Caldera являются компании основных от
раслей промышленности, организация предоставляет широкие возможности
технической поддержки и имеет наиболее мощную сеть реселлеров. Допол
нительную информацию об этом дистрибутиве можно найти в Интернете по
адресу http://www.calderasystems.com/products/openlinux/.
Slackware Linux
Slackware — один из самых старых дистрибутивов Linux. Хотя я начал свое
знакомство с Linux именно с дистрибутива Slackware, сейчас я не рекомендую
его новым пользователям, так как по сравнению с Red Hat Linux он требует
больше ручного редактирования текстовых файлов конфигурации.
Однако Slackware может быть прекрасным дистрибутивом для того, кто
хочет поиграть с изменением ядра или любит подход «сделай сам». Вкратце
можно сказать, что это не для слабых духом. Slack — сокращенное имя, данное
дистрибутиву его приверженцами, — не использует никакой схемы пакетиро
вания, поэтому все пакеты поступают в виде файлов tar. Это создает пробле
мы для новых пользователей и еще большие неудобства, когда дело доходит
до модернизации операционной системы или других частей дистрибутива.
www.books-shop.com
6 Глава 1
О ;
www.books-shop.com
Почему Red Hat Linux? ^ 7
: ^> —
Trinux
Trinux загружается с нескольких (23) гибких дисков (или из раздела
MSDOS/Windows 9x) и целиком выполняется в оперативной памяти. Он по
ставляется с самыми последними версиями многих сетевых инструменталь
ных средств защиты, таких как NETWATCH, tcpdump и netmon, которые
являются очень полезными утилитами сканирования портов TCP/IP и мони
торинга сетей. Дистрибутив Linux превращает старый персональный компь
ютер (ПК) класса лвб в мощную рабочую станцию управления сетевой
безопасностью. Дополнительную информацию о Trinux можно найти по ад
ресу h t t p : / / w w w . t r i n u x . o r g .
Linux на „гибких дисках (LOAF)
LOAF умещается на одном гибком диске (1.44 МБ) и действует как простая
система сетевого клиента. Дополнительную информацию об этом дистрибу
тиве можно найти по URL: http://www.ecks.org/loaf/.
Linux Router Project
Linux Router Project является еще одним дистрибутивом Linux, умещаю
щимся на одном гибком диске (1.44 МБ). Эта система превращает обычную
старую систему лйб в маршрутизатор, используя демон (фоновый процесс)
шлюза. Дистрибутив находится на узле FTP: f t p : //sunsite. u n c . edu/pub/Linux/
distributions/linuxrouter/.
Существуют дистрибутивы Linux для других процессорных архитектур.
Фактически Red Hat Linux поддерживает Alpha и SPARC, a Debian GNU/Linux
имеет стабильные версии для архитектур Alpha и Motorola 68K. Версии Linux
для машин PowerPC, таких как PowerMac, доступны от MkLinux и LinuxPPC.,
Системы Linux для компьютеров UltraSPARC поставляет UltraPenguin.
Информацию обо всех доступных дистрибутивах Linux можно получить
по URLадресам:
ч
• http://www.linuxhq.com/distindex.html
• http://www.linux.org/dist/index.html
www.books-shop.com
8 '' Глава 1
О •
www.books-shop.com
Почему Red Hat Linux? 9
—: ^>
www.books-shop.com
10 Глава 1
О :
www.books-shop.com
Глава 2
Установка и базовая
конфигурация
В этой главе:
Требования к оборудованию
С самого начала и до сего времени Linux не выдвигала повышенных тре
бований к оборудованию. Red Hat Linux требует для исполнения не слиш
ком многого, однако требования клиентской версии Linux отличаются от
требований к выполнению операций серверного класса. Определить, под
держивается ли оборудование системой Red Hat Linux, поможет Webсайт:
http://www.redhat.com/support/docs/rhl.
Чем лучше оборудование, тем выше будет производительность системы
Red Hat Linux. Однако надо быть осторожным, поскольку поддерживаться
может не все новое оборудование! Например, если видеокарта с необыкно
венными свойствами появилась вчера, не следует ожидать, что она завтра
будет поддерживаться Red Hat Linux. Иногда производители оборудования
www.books-shop.com
12 2
www.books-shop.com
Установка и базовая конфигурация 13
О
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
14 Глава 2
О : $
www.books-shop.com
Установка и базовая конфигурация 15
Во время первой установки Red Hat лучше нажать клавишу Enter, чтобы
запустить процесс обычной установки.
После запуска программа установки выводит следующий начальный эк
ран. Нажмите Enter, чтобы продолжить установку.
Как работает программа установки
Программа установки использует для перемещения по экрану несколько
клавиш — «стрелка вверх», «стрелка вниз», Tab (табуляция), пробел и Enter.
Четыре виртуальные консоли можно выбирать клавишами от Alt+Fl до
Alt+F4. Используемая по умолчанию консоль (Alt+Fl) показывает диалоговые
окна процесса установки, вторая консоль (A11+F2) — приглашение оболочки,
где при необходимости можно вводить команды, третья консоль (Alt+F3)
2 Зак. 436
www.books-shop.com
16 ' 2
— о •• —
выводит сообщения журнала установки, а четвертая консоль (AU+F4) показы
вает сообщения ядра.
Выбор языка, раскладки клавиатуры
и метода установки
После знакомства с начальной страницей приветствия нужно выбрать ис
пользуемый язык (по умолчанию применяется английский English). Укажи
те нужный язык и нажмите Enter. Следующий экран предлагает выбрать тип
клавиатуры. По умолчанию используется English. Можно нажать Enter или
выбрать иной тип клавиатуры. Затем следует выбрать метод установки: Local
CDROM, NFS Image, hard drive, FTP и 8MB image. Поскольку мы проводим
установку с устройства CDROM, нажмите клавишу Enter, чтобы начать про
цесс установки.
Новая установка или обновление
Экран (см. рис. 2.1) предлагает выбрать новую установку или обновление.
Рис. 2.1.
Выбор новой
установки или
обновления системы
www.books-shop.com
Установка и базовая конфигурация 17
V/
Выбор класса
установки
Автоматическое
определение
адаптера(ов) SCSI
www.books-shop.com
18 Глава 2
О
Выбор адаптера
SCSI вручную
Выбор утилиты
разбиения дисков
Здесь нужно выбрать утилиту разбиения диска: Disk Druid или программу
fdisk.
Утилита разбиения Disk Druid проще для пользователя, чем программа
fdisk, поэтому рекомендуем ее начинающим. После выбора в меню этой ути
литы, на экран выводятся сведения о текущих разделах дисков. На рис. 2.6 по
казан пример структуры разделов дисков моей системы.
www.books-shop.com
Установка и базовая конфигурация • . 19
__ _ ^j>
Просмотр
существующих
разделов дисков
www.books-shop.com
20 Глава 2
Теперь следует создать раздел свопинга (тип — Linux swap) так, чтобы раз
мер раздела не превышал удвоенного размера вашей физической оператив
ной памяти или 128 МБ (нужно выбрать наименьшее из этих двух значений).
Например, если в системе 32 МБ оперативной памяти, подойдет раздел сво
пинга размером 64 МБ.
В оставшихся свободными дисках или разделах можно добавить дополни
тельные разделы по собственному усмотрению. На рис. 2.7 показаны разделы
моей двухдисковой системы.
Пример таблицы
разделов
Выбор жесткого
диска для
дальнейшего
разбиения на
разделы
www.books-shop.com
Установка и базовая конфигурация 21
Рис. 2.9.
Разбиение дисков
утилитой (disk
www.books-shop.com
22 Глава 2
www.books-shop.com
Установка и базовая конфигурация 23
Выбор и активизация
раздела свопинга
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
24 Глава 2
Форматирование разделов
На следующем этапе программа установки запросит подтверждение фор
матирования всех доступных разделов, кроме раздела свопинга. На рис. 2.11
для форматирования доступен только один раздел.
Рис. 2.11.
Выбор
форматируемых
разделов
www.books-shop.com
Установка и базовая конфигурация 2S
Рис. 2.12.
Выбор
устанавливаемых
компонентов
Рис. 2.13.
Выбор
устанавливаемых
пакетов
www.books-shop.com
26 Глава 2
Рис. 2.14.
Запуск процесса
установки
Рис. 2.15.
Выполнение
установки
Выбор мыши
Если программа установки автоматически определит мышь, появится диа
логовое окно с информацией о порте мыши. Если программа не сможет это
го сделать, будет выведено иное окно (см. рис. 2.16), предлагающее выбрать
мышь вручную.
Установка пакетов X Window предполагает конфигурирование системы X,
по мы пока не будем обсуждать эти операции и сразу перейдем к конфигури
рованию сети.
Конфигурирование сети TCP/IP
Конфигурация сети по сути дела определяет основные параметры стека
TCP/IP. Экран конфигурирования сети показан на рис. 2.17.
Мы проводим установку сервера, поэтому щелкните Yes (Да). Придется
выбрать способ, которым конфигурируются IPадреса сервера (см. рис. 2.18).
Варианты конфигурирования ВООТР и DHCP подходят для установки ра
бочей станции, которая получает IPадрес от сервера ВООТР или DHCP
www.books-shop.com
Установка и базовая конфигурация 27
О
Рис. 2.16.
Выбор мыши
Рис. 2.17.
Конфигурирование
сети
локальной сети. Для сервера пригоден только вариант Static IP address (Ста
тический IPадрес). Выберите этот вариант и перейдите на следующий экран
(см. рис. 2.19).
Нужно ввести IPадрес сервера и маску подсети, используемый по умолча
нию шлюз и первичный сервер имен. Если сервер предназначен для собст
венной локальной сети, то значения этих параметров должны быть
известны. Если же создается локальный сервер сети Интернетпровайдера,
то все сведения об IPадресах нужно получить у провайдера. Рекомендации по
выбору параметров собственной локальной сети приведены в главе 9, посвя
щенной созданию сетей IP.
Используемый по умолчанию шлюз обычно является маршрутизатором,
связывающим локальную сеть с Интернетом. IPадрес используемого по умол
чанию1 шлюза должен принадлежать этой локальной сети. Другими словами,
если сервер имеет IPадрес 206.171.50.50, то шлюз по умолчанию должен
иметь адрес 206.171.50.х, где х может быть любым подходящим числом. Пер
вичный сервер имен может быть где угодно, но лучше если он не слишком
www.books-shop.com
28 Глава 2
Рис. 2.18.
Выбор варианта
конфигурирования
IP$адреса
Рис. 2.19.
Конфигурирование
параметров TCP/IP
www.books-shop.com
Установка и базовая конфигурация 29
Настройка
параметров DNS и
хоста
Конфигурирование
часового пояса
www.books-shop.com
30 Глава 2
Рис. 2.22.
Выбор запускаемых
служб или демонов
www.books-shop.com
Установка и базовая конфигурация 34
Рис 2.24.
Выбор типа
соединения принтера
Рис. 2.25.
Выбор информации
об очереди печати
и спулинге
www.books-shop.com
32 Глава 2
Рис. 2.26.
Выбор параметров и
модели принтера
Рис. 2.27.
Выбор конфигурации
принтера
www.books-shop.com
Установка и базовая конфигурация 33
Рис. 2.28. I
Проверка
параметров принтера
Рис. 2.29.
Ввод пароля
пользователя root
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
34 Глава 2
Рис. 2.30.
Предложение о
создании
пользовательского
загрузочного диска
Рис. 2.31.
Создание
специального
загрузочного диска
www.books-shop.com
Установка и базовая конфигурация 35
Рис. 2.32.
Выбор места
размещения LJLO
Рис. 2.33.
Добавление
конфигурационных
параметров ядра
www.books-shop.com
36 Глава 2
Рис. 2.34.
Конфигурирование
загрузочных
разделов
Рис. 2.35.
Конфигурирование
меток загрузки ULO
www.books-shop.com
Установка и базовая конфигурация 37
Рис. 2.36.
Сообщение о
завершении
установки
www.books-shop.com
www.books-shop.com
Часть 2
Работа
суперпользователя
www.books-shop.com
www.books-shop.com
Глава 3
Процессы начальной загрузки
и выключения системы
В этой главе:
Как загружается Linux
Как конфигурировать ink
Как остановить Linux
www.books-shop.com
42 Глава 3
на экране консоли. Листинг 3.1 — сокращенная версия того, что система Red
Hat 5.3 показывает во время начальной загрузки.
Листинг 3.1. Консольные сообщения во время процесса начальной загрузки
Memory: sized by int13 Oe801h
Console: 16 point font, 400 scans
Console: colour VGA+ 80x25, 1 virtual console (max 63)
Probing PCI hardware.
Calibrating delay loop., ok $ 53.04 BogoMIPS
Memory: 127584k/131072k available (748 kernel code, 384k reserved,
2164k data)
Swansea University Computer Society NETS.035 for Linux 2.0
NETS: Unix domain sockets 0.13 for Linux NETS.035.
Swansea University Computer Society TCP/IP for NETS.034.
IP Protocols: IGMP, ICMP, UDP, TCP
Linux IP multicast router 0.07.
VFS: Diskquotas version dquot_5.6.0 initialized'M
Checking 386/387 coupling... Ok, fpu using exception 16 error reporting.
Checking 'hit' instruction ... Ok.
Intel Pentium with FO OF bug workaround enabled.
alias mapping IDT readonly done
Linux version 2.0.36 (rootfporky.redhat.com) (gcc version 2.7.2.3)
#1 Tue Oct 13 22:17:11 EOT 1998
Starting kswapd v 1.4.2.2
Serial driver version 4.13 with no serial options enabled
ttyOO at Ox03f8 (irq = 4) is a 16550A
Real Time Clock Driver v1.09
Ramdisk driver initialized: 16 ramdisks of 4096K size
ide: i82371 PIIX (Triton) on PCI bus 0 function 57
ideO: BMDMA at OxfOOOOxf007
idel: BMDMA at OxfOOSOxfOOf
hda: IBMDTTA351010, 9671MB w/466kB Cache, CHS=1232/255/63, DMA
hdc: CD920E, ATAPI CDROM drive
ideO at Ox1fOOx1f7, Ox3f6 on irq 14
idel at 0x1700x177,0x376 on irq 15
Floppy drive(s): fdO is 1.44M
FDC 0 is a post1991 82077
md driver 0.36.3 MAX_MD_DEV=4, MAX_REAL=8
scsi: 0 hosts,
scsi: detected total.
Partition check:
hda: hdal hda2 < hda5 hda6 hda7 >
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
ncr53c8xx: at PCI bus 0, device 9, function 0
ncr53c8xx: 53c825 detected
scsiO : ncr53c8xx revision 2.5f.1
Detected scsi disk sda ad scsiO, channel 0, id 0, lun 0
ncr53c8250<0,0>: FAST5 SCSI 5.0 MB/s (200 ns, offset 8)
SCSI device sda: hdwr sector= 512 bytes. Sectors= 2109840 [1030 MB]
[1.0 GB]
sda: sdal sda2 < sda5 sda6 >
VFS: Mounted root (ext2 filesystem) readonly.
Trying to unmount old root ... okay
Adding Swap: 129900k swapspace (priority 1)
www.books-shop.com
Процессы начальной загрузки и выключения системы 43
В этом месте ядро монтирует корневую файловую систему (/) только для
чтения и выполняет проверку файловой системы. Если оно найдет, что все в
порядке, то корневая файловая система будет обычно смонтирована в режи
ме чтения/записи.
Конфигурирование init
Как ранее упоминалось, init является самой первой программой, которую
выполняет ядро в конце последовательности загрузки. Программа init доступ
на в двух вариантах — init из системы UNIX System V и init из BSD. Дистрибу
тив Red Hat поставляется с init из системы UNIX System V. Различие между
двумя вариантами в том, что init из System V использует уровни выполнения
(run levels, обсуждаемые ниже), a init из BSD не использует. Следовательно,
рассмотрение init будет ограничено версией init из системы UNIX System V.
Так как init является первой программой, выполняемой ядром, ее иденти
фикатор процесса (PID) равен 1. Когда она запускается, init считывает кон
фигурационный файл, называемый /etc/inittab. Файл /etc/inittab в
типичной системе Red Hat Linux показан на листинге 3.2.
Листинг 3.2. Типичный файл /etc/inittab
п
tt inittab Этот файл описывает, как процесс INIT должен
# настраивать систему для определенного уровня выполнения.
#
В Автор: Miguel van Smoorenburg,
# <miquels@drinkel.nl.mugnet.org>
ft
tf Модифицирована для RHS Linux Марком Ивингом и Денни Барнсом
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
44 Глава 3
и 5 Х11
п 6 перезагрузка (НЕ задавайте это значение для init по умолчанию)
#
id:3:initdefault:
п Инициализация системы,
si: :sysinit:/etc/rc.d/rc.sysinit
10:0:wait:/etc/rc.d/rc 0
11:1:wait:/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/re.d/rc 4
15:5:wait:/etc/rc.d/rc 5
16:6:wait:/etc/rc.d/rc 6
# Те вещи, которые выполняются на каждом уровне выполнения,
ud::once:/sbin/update
» Перехват CTRLALTDELETE
са::ctrlaltdel:/sbin/shutdown t3 r now
П Когда источник бесперебойного питания сообщает нам, что произошел отказ
# питания, будем считать, что мы имеем еще несколько минут работы
П с питанием.Спланируйте выключение системы в течение 2 мин с денного
и момента.
я
п Предполагается, что у вас установлен powerd и ваш
п источник бесперебойного питания присоединен и работает правильно.
#
pf: :powerfail:/sbin/shutdown $f $h +2 "Power Failure; \
System Shutting Down"
# Если питание восстановлено, прежде чем начнется выключение, отмените его.
pr:12345:powerokwait:/sbin/shutdown $с ."Power Restored; \
Shutdown Cancelled"
ft Выполнить getty на стандартных уровнях выполнения
1:12345:respawn:/sbin/mingetty ttyl
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
п Выполните xdm на уровне 5
x:5:respawn:/usr/bin/X11/xdm $nodaemon
Этот файл определяет, как init ведет себя во время событий запуска и вы<
ключения сервера. Давайте внимательно рассмотрим этот файл.
Программа init игнорирует все пустые и закомментированные строки (т.е.
строки, которые начинаются со знака «#») в файле /etc/mittab. Строки с по<
лями, разделенными двоеточиями, являются конфигурационными строками
init. Синтаксис для такой строки:
идентификатор:уровень_выполнения:действие:процесс [аргументы]
Первое поле является полем уникальной метки для идентификации запи<
си в файле. Это поле (id) может иметь длину 2<4 символа. Второе поле ( r u n l e <
vels) определяет, к каким уровням выполнения применима эта строка.
Третье поле определяет, какое действие необходимо сделать. Последнее
поле (process) определяет, какой процесс необходимо выполнять. Вы можете
также дополнительно (при желании) определить аргументы командной стро<
ки для процесса в четвертом поле.
www.books-shop.com
Процессы начальной загрузки и выключения системы 45
www.books-shop.com
46 Глава 3
Init в стиле System V, каким является ink Red Hat Linux, использует следу
ющую структуру каталога:
/etc
+$rc.d
+$init.d (каталог)
+$rc0.d (каталог)
+$rc1.d (каталог)
+$rc2.d (каталог)
+$rc3.d (каталог)
+$rc4.d (каталог)
+$rc5.d (каталог)
+$rc6.d (каталог)
+rc.sysinit (сценарий)
+rc. local (необязательный сценарий, поставляемый с Red Hat Linux)
+гс. serial (необязательный сценарий)
+гс (сценарий)
Сценарий /etc/re. d/rc.sysinit
Когда система Red Hat Linux загружается, ядро выполняет программу init,
которая в свою очередь выполняет сценарий /etc/re. d/rc.sysinit прежде чем
обрабатывать любые другие сценарии для желаемого уровня выполнения.
Система выполняет этот сценарий прежде всего в связи со следующей стро
кой в файле /etc/inittab.
si: :sysinit:/etc/rc. d/rc.sysinit
Обратите внимание, что поле уровня выполнения является пустым, так
как init распознает sysinit как действие по инициализации системы. Сценарий
rc.sysinit делает много вещей, включая задание имени хоста, разрешение раз
дела свопинга, проверку файловых систем, загрузку модулей ядра и другие.
Обычно вам не нужно модифицировать этот сценарий.
Каталог /etc/rc.d/init.d
Подкаталог init.d используется для хранения сценариев, необходимых для
всех уровней выполнения. Хранение всех сценариев в одном месте облегчает
управление ими. Каждый сценарий используется для запуска/остановки
определенной службы — службы имен доменов (DNS), службы Web и т.д. Все
эти сценарии следуют специальному синтаксису аргументов командной стро
ки. Например, чтобы запустить службу NFS (сетевая файловая система), вы
можете выполнить такой сценарий:
/etc/re. d/init.d/nfs start
Чтобы остановить ту же самую службу, вы можете выполнить тот же сце
нарий следующим образом:
/etc/гс. d/init.d/nfs stop
Сценарий nfs получает start и stop в качестве аргументов. Это справедливо
для всех сценариев в каталоге, который имеет символьную ссылку на каталог
гс [06] .d.
Сценарий /etc/rc.d/rc
Когда init приказывают изменить уровень выполнения на один из возмож
ных уровней выполнения, этот демон выполняет сценарий, определенный в
одной из следующих строк в файле /etc/inittab:
10:0:wait:/etc/rc.d/rc О
11 :1 :wait: /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
www.books-shop.com
Процессы начальной загрузки и выключения системы 47
15:5:wait:/etc/re.d/rc 5
16:6:wait:/etc/rc.d/rc 6
Для каждого уровня выполнения (06) сценарий /etc/re.d/rc выполняет
ся с уровнем выполнения в качестве аргумента для сценария. Этот сценарий
отвечает за запуск и остановку всех служб для желательного уровня выполне
ния. Например, пусть init приказано изменить уровень выполнение на 3. Он
будет выполнять сценарий /etc/rc.d/rc с аргументом 3 в командной строке
аналогично строке:
/etc/rc.d/rc 3
Сценарий /etc/rc.d/rc показан на листинге 3.3.
Листинг 3.3. Сценарий /etc/rc.d/rc
#!/bin/bash
»
» re Этот файл отвечает за запуск/остановку
» служб, когда изменяется уровень выполнения. Он также
# отвечает за самую первую настройку базовых параметров, таких
# как имя хоста.
Я
# Первоначальный автор: Мигель ван Смууренберг (Miguel van Smoorenburg),
ff . <miquels@drinkel.nl.mygnet.org>
»
# Библиотека исходного кода функций.
. /etc/re.d/init.d/functions
# Теперь найдем, каким является текущий и каким был предыдущий
# уровень выполнения.
argv1="$1"
set '/sbin/runlevel'
runlevel=$2
previous=$"l
export runlevel previous
# Получить первый аргумент. Задать новый уровень выполнения
Я равным этому аргументу.
[ "$1" != "" ] && runlevel ="$argv1"
и Сообщите linuxconf, на каком уровне выполнения мы находимся
[ d /var/run ] && echo "/etc/rc.d/rc$runlevel.d" >
/var/run/runlevel.dir
# Существует ли каталог гс для этого нового уровня выполнения?
if [ d /etc/re.d/rc$runleve!1.d ]; then
9 Сначала выполните сценарий KILL.
for i in /etc/rc.d/rc&runlevel.d/K*; do
ff Проверьте, существует ли сценарий.
[ ! f $i ] && continue
# He выполняйте сценарий [KS]??foo.{rpmsave,rpmorig}
[ "${1%.rpmsave}" != "${1}" ] && continue
[ "${1%.rpmorig}" != "${1}" ] && continue
и Проверьте, включена ли уже подсистема.
subsys=$U»/etc/rc.d/rc$runlevel.d/K??}
[ ! f /var/lock/subsys/$subsys ] && \
[ ! f /yar/lock/subsys/${subsys>.init ] && continue
# Выключите подсистему.
$i stop
www.books-shop.com
48 Глава 3
done
tt Теперь выполните сценарии START.
for i in /etc/re.d/rc$runlevel.d/S*; do
№ Проверьте, существуют ли сценарии.
[ ! f $i ] && continue
tt He выполняйте сценарии [KS]??foo. {rpmsave, rpmorig}
[ "${1%.rpmsave}" != "${1}" ] && continue
[ "${1%.rpmorig}" != "${1}" ] && continue
# Проверьте, включена ли уже подсистема.
subsys=${i(f/etc/rc.d/rc$runlevel.d/S??}
[ ! f /var/lock/subsys/$subsys ] | | \
[ ! f /var/lock/subsys/${subsys}.init ] && continue
tt Включите подсистему.
$i start
done
fi
Этот сценарий прежде всего делает следующее:
1. Проверяет, существует ли каталог для уровня выполнения, специфици<
рованного аргументом. Другими словами, если сценарий выполняется с
аргументом равным, 3, он будет проверять, существует или нет каталог
/etc/rc.d/rc3.d/. Если он существует, сценарий перейдет к следующе<
му шагу.
2. На этом шаге сценарий определит, работает или нет какая<либо из про<
грамм (часто называемых службами), которые предполагается выпол<
нять на новом уровне выполнения. Если служба уже выполняется,
сценарий прекратит работу службы (kill), чтобы он мог перезапустить
ее на следующем шаге. Чтобы прекратить выполнение службы, сцена<
рий выполнит необходимый сценарий «К» с аргументом «stop».
3. На этом конечном шаге сценарий гс будет выполнять все сценарии «S»
с аргументом «start».
Каталоги /etc/rc.d/rc(0'6).d
Подкаталоги от rcO.d до rc6.d используются для уровней выполнения от О
до 6. Эти каталоги содержат символические связи со сценариями в каталоге
/etc/re.d/init.d. Каталог rcS.d в моей системе Red Hat Linux 5.2 содержит
символьные ссылки, показанные в листинге 3.4.
Листинг 3.4. Список каталога /etc/re.d/rc3.d моей системы Red Hat Linux
Irwxrwxrwx root root 14 K05innd > . . /init.d/innd
Irwxrwxrwx root root 15 KlOxntpd > .../init.d/xntpd
Irwxrwxrwx root root 13 K15gpm > ..//init.d/gpm
Irwxrwxrwx root root 15 K15httpd > ..,/init.d/httpd
Irwxrwxrwx root root 20 K15postgresql $> ../init.d/postgresql
Irwxrwxrwx root root 20 K20bootparamd $> . ./init.d/bootparamd
1 rwx rwx rwx root root 17 K20rusersd > .,/init.d/rusersd
Irwxrwxrwx root root 16 K20rwalld > .,/init.d/rwalld
Irwxrwxrwx root root 15 K20rwhod > .../init.d/rwhod
Irwxrwxrwx root root 15 K25squid > .../init.d/squid
Irwxrwxrwx root root 19 K34yppasswdd $> .,/init.d/yppasswdd
Irwxrwxrwx root root 15 K35dhcpd > . ./init.d/dhcpd
Irwxrwxrwx root root 16 K35ypserv > ,./init.d/ypserv
Irwxrwxrwx root root 18 K45arpwatch :> ../init.d/arpwatch
Irwxrwxrwx root root 15 K5Osnmpd > .../init.d/snmpd
Irwxrwxrwx root root 16 K55routed > ./init.d/routed
www.books-shop.com
Процессы начальной загрузки и выключения системы 49
Сценарий /etc/rc.d/rc.local
Сценарий rc.local обычно выполняется один раз в конце уровней выпол<
нения 2, 3, и 5. Вы можете добавить сюда то, что необходимо выполнить
один раз во время загрузки в этот файл.
Сценарий /etc/rc.d/rc.serial
Подобно сценарию re.local, rc.serial обычно выполняется один раз в конце
уровня выполнения 1 или 3, чтобы инициализировать последовательные
( порты.
Загрузка системы
Во время процесса начальной загрузки ink будет сначала выполнять сце<
нарий rc.sysink, а затем выполнять сценарий для используемого по умолча<
нию уровня выполнения. Он задается в /etc/inittab с помощью такой строки:
идентификатор: 3: 1л1т._по_умолчанию:
Здесь используемый по умолчанию уровень выполнения задан как 3. Это
означает, что ink будет выполнять сценарий, необходимый для перевода сис<
темы в многопользовательский режим.
Следующая строка определяет, что необходимо выполнять для уровня вы<
полнения 3.
13:3:wait:/etc/rc.d/rc 3
Сценарий гс выполняется с аргументом 3. Этот сценарий будет выполнять
все сценарии, чьи имена начинаются с «S» в каталоге /etc/rc.d/rc3.d. Он
www.books-shop.com
50 Глава 3
Выключение системы
Можно выполнить ink вручную и приказать системе изменить уровень вы
полнения, указав его в командной строке. Например:
init 1
прикажет init изменить текущий уровень выполнения на 1. Другими словами,
это остановит систему. Если вы работаете в многопользовательском режиме
(уровень выполнения 3), предыдущая команда не очень удачна, так как она не
сообщает пользователям системы о предстоящем выключении.
Обычно для выключения системы используется команда shutdown. Она
посылает широковещательное предупреждающее сообщение всем зарегист
рированным пользователям о том, что система изменяет уровень выполне
ния. Она также предоставляет возможность спланировать операции
выключения системы.
Команда shutdown работает, приказывая init изменить текущий уровень
выполнения системы либо на остановку (halt — 0), либо на перезагрузку
(reboot — 6). Например:
shutdown $h now
!
Отмена выключения системы
Команда shutdown позволяет вам запланировать выключение системы на
более поздний срок. Например:
shutdown +10
задает выключение системы ровно через 10 мин после ввода команды в при
глашение оболочки. Теперь может возникнуть необходимость отменить со
бытие выключения системы; в этом случае можно выполнить другую команду
shutdown с параметром с. Например:
shutdown $с
Перезагрузка сервера
Можно также выполнить init вручную, чтобы перезагрузить ваш сервер.
Например:
init 6
При работе в многопользовательском режиме (уровень выполнения 3),
эта команда не является лучшим подходом, так как она не информирует поль
зователей системы, что система собирается перезагружаться. Вместо этого вы
можете использовать команду shutdown для перезагрузки сервера. Например:
shutdown
г +10
www.books-shop.com
Процессы начальной загрузки и выключения системы 51
www.books-shop.com
52 Глава 3
Shutdown Cancelled"
Когда init получает сигнал SIGPWR и файл с именем /etc/powerstatus со
держит в себе строку «ОК», активируется действие powerokwait.
www.books-shop.com
Процессы начальной загрузки и выключения системы 53
Например:
chkconfig $$del named
Эта команда удалит службу named из текущего уровня выполнения. Чтобы
удалить службу из уровня выполнения, отличного от текущего, используйте
параметр —level. Например:
chkconfig $$del named $$level 5
Эта команда удалит службу named из уровня выполнения 5.
Использование ntsysv для управления
уровнями выполнения
Утилита ntsysv позволяет включить/выключить различные службы в лю
бом уровне выполнения, используя простой интерфейс с меню. Когда вы вы
полняете эту команду без аргументов, она покажет экран (см. рис. 3.1).
|Рис. 3.1.
Экран ntsysv
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
54 Глава 3
stop)
echo n "Shutting down http: "
[ f /var/run/httpd.pid ] && {
kill 'cat /var/run/httpd.pid'
echo n httpd
}
echo
rm f /var/lock/subsys/httpd
rm f /var/run/httpd.pid
status)
status httpd
restart)
$0 stop
$0 start
reload)
www.books-shop.com
Процессы начальной загрузки и выключения системы 55
*)
echo "Usage: $0 {start | stop | restart | reload | status}"
exit 1
esac
exit 0
Этот сценарий для sh является простым оператором case (переход по
условию). А вот как вы можете создать новый сценарий службы из существую
щего сценария службы. Предположим, что ваша новая служба называется
webmonitor и выполняемый файл хранится в /usr/sbin/webmonitor.
www.books-shop.com
www.books-shop.com
Глава 4
Файлы и устройства UNIX
В этой главе:
Общие представления
о полномочиях файлов/каталогов
Подобно всем операционным системам UNIX, Linux ассоциирует файл
или каталог с пользователем и группой. Рассмотрим пример:
$rw$rw$r$ 1 sheila intranet 512 Feb 6 21:11 milkyweb.txt
Эта строка получена с помощью команды Is I milkyweb.txt на системе Red
Hat Linux. Программа Is показывает список файлов и каталогов. Параметр 1
задает вывод полного описания файла milkyweb.txt. Рассмотрим теперь эту
же информацию в виде таблицы 4.1.
www.books-shop.com
58 Глава4
www.books-shop.com
Файлы и устройства UNIX 59
Например:
chown sheila.admin kabirs_plans.txt
Предыдущая команда не только делает sheila новым владельцем, но также
изменяет группу файла на admin.
Если суперпользователь захочет изменить владельца файла и/или группу
всех файлов либо каталогов в данном каталоге, он может использовать пара
метр R команды chown в рекурсивном режиме. Например:
chown $R sheila.admin /home/kabir/plans/
Эта команда изменяет владельца и группу всех файлов и подкаталогов из
каталога /home/kabir/plans.
Хотя необходимо быть суперпользователем, чтобы изменить владельца
файла, обычный пользователь может изменить группу файла или каталога с
помощью команды chgrp.
Изменение группы файлов/каталогов
с помощью chgrp
Команда chgrp позволяет обычному пользователю изменить принадлеж
ность файла или каталога к группе, если этот пользователь также является
членом новой группы. Другими словами, пользователь может изменять груп
пы, только если принадлежит как к старой, так и к новой группам. Например:
chgrp httpd «.html
Чтобы выполнить предыдущую команду об изменении группы для всех
файлов HTML в каталоге, необходимо быть членом группы httpd. Можно уз
нать, к каким группам принадлежит пользователь, используя команду groups
без аргументов, chgrp, как и команда chown, тоже использует R, чтобы рекур
сивно изменять имена групп одного или нескольких файлов или каталогов.
Посмотрим теперь, как к файлам и каталогам применяются полномочия
доступа. Существует два способа представления полномочий файлов/каталогов.
Представление полномочий доступа
с помощью восьмеричных чисел
Использование восьмеричных чисел для объяснения полномочий доступа
файлов/каталогов предполагает анализ каждого бита. Если такой подход по
какимлибо причинам не устраивает, можно пропустить этот раздел и перей
ти к следующему, который объясняет применение тех же самых полномочий
с помощью более простой строки доступа.
Поскольку для объяснения полномочий доступа будет использоваться не
так часто используемая восьмеричная система счисления, вспомним о вось
меричных числах. Восьмеричная система счисления использует восемь цифр
вместо обычно используемых десяти. Восьмеричными цифрами являются
0—7 и каждая цифра может быть представлена тремя битами (в двоичной сис
теме). Таблица 4.2 показывает двоичные эквиваленты для каждой восьмерич
ной цифры.
www.books-shop.com
60 Глава 4
1 sticky$bit * х х
www.books-shop.com
Файлы и устройства UNIX 61
Все (а)
www.books-shop.com
62 Глава 4
www.books-shop.com
Файлы и устройства UNIX 63
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
64 Глава 4
www.books-shop.com
Файлы и устройства UNIX 65
Рис. 4.3.
Как система Полномочия, запрошенные Unmask
использует umask функцией открытия файла
ореп()
Восьмеричное
представление о 6 6 0 2 2
'
000 010 010 1
1 1' 1 1
Двоичное Преобразованное
представление 000 110 110 no i 000 110 110 110 1
значение unmask
полномочия 0 6 4 4 1 (rw$r$r$)
www.books-shop.com
66 Глава 4
www.books-shop.com
Файлы и устройства UNIX 67
www.books-shop.com
68 Глава 4
rm $rf directory
Эта команда удаляет все файлы и подкаталоги внутри указанного каталога.
Поиск файлов
Для того чтобы найти файл, можно использовать различные команды.
Чтобы найти точный путь доступа программы, можно использовать команду
which. Например:
which httpd
Эта команда покажет полностью определенное (специфицированное)
имя пути доступа программы httpd, если она вообще доступна. Некоторые
оболочки имеют встроенную команду which, а другие используют
/usr/sbin/which.
Можно также найти файл или каталог программой locate по частичному
или полному имени. Например:
locate netpr.pl
Эта команда будет запрашивать базу данных имен файлов updatedb и воз
вращать все записи, где встретится файл netpr.pl. Чтобы locate работала пра
вильно, необходимо иметь задание сгоп, настроенное на ежедневное или
еженедельное выполнение утилитой updatedb.
Другой очень мощной программой, которую можно использовать для по
иска файлов или каталогов, является find (см. главу 5).
Переопределение используемой по умолчанию
маски полномочий
Системный администратор может задать маску полномочий по умолча
нию в глобальном файле ресурсов для используемой оболочки. Например,
для оболочки /bin/tcsh системный администратор командой umask может
задать в файле /etc/csh.cshrc используемые по умолчанию полномочия фай
лов. Если необходимо переопределить маску используемых по умолчанию
полномочий, можно выполнить umask из командной строки, чтобы изменить
используемую по умолчанию маску. Например:
umask 222
www.books-shop.com
Файлы и устройства UNIX 69
www.books-shop.com
www.books-shop.com
Глава 5
Повседневные команды
В этой главе:
www.books-shop.com
72 Глава 5
•Таблица 5.1.
Широко Метасимвол Значение
используемые * Соответствует любой последовательности из одного или нескольких
метасимволы символов
? Соответствует любому одиночному символу [ ]
[ ] Соответствует одному из заключенных в скобки символов или симво$
лу из указанного диапазона
www.books-shop.com
Повседневные команды 73
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
74 Глава 5
Использование оперативного
справочного руководства
Оперативные manстраницы (man сокращение от manual — справочник)
разбиты на восемь основных разделов, как показано в таблице 5.4. Эти разде
лы содержат большинство версий UNIX. Раздел 1 специфицирует большую
часть команд UNIX. Многим пользователям достаточно только этого раздела
справочника. Разделы 2, 3, 4 и 5 из справочника UNIX представляют интерес
только для программистов. Раздел 8 предназначен только для системных ад
министраторов.
www.books-shop.com
Повседневные команды 75
www.books-shop.com
76 Глава 5
Параметр Описание
$f Подавляет все сообщения об ошибках, кроме сообщений об использовании
$л Изменяет владельца встретившейся символьной ссылки, но не владельца фай$
ла или каталога, на которые она указывает
$В Спускается рекурсивно по каталогам, изменяя владельца для каждого файла.
Когда встречается символьная ссылка, которая указывает на каталог, изменяет$
ся владелец этого каталога, но блокируется дальнейшее распространение из$
менения
www.books-shop.com
Повседневные команды 77
www.books-shop.com
78 Глава 5
www.books-shop.com
Повседневные команды 79
и b.txt содержит
с
d
е
f
g
Команда diff выведет:
1,2dO
< а
< b
5а4,5
> f
> g
Команда diff формирует результат, показывающий, как различаются фай
лы и что необходимо сделать, чтобы файлы стали идентичными. Обратите
внимание, что 'с' является первым общим символом двух файлов. Первая
строка равна l,2dO. Это интерпретируется как удаление строк 1 и 2 первого
файла (строки а и Ь). Четвертая строка показывает 5а4,6. Здесь 'а' означает
«добавить». Если строки с 4 по б второго файла добавить после строки 5 пер
вого файла, то файлы станут идентичны.
Команда diff имеет несколько часто используемых параметров. Пара
метр i игнорирует изменения регистра символов. Команда diff i рассматри
вает символы верхнего и нижнего регистров как эквивалентные. Параметр q
сообщает, различаются ли вообще файлы.
diff $q a.txt b.txt
Files a.txt and b.txt differ
Параметр b игнорирует изменения в пробелах. Фраза «the foo» будет эк
вивалентна «the foo», если используется параметр Ь.
du
Синтаксис:
du [$ask] <имена файлов>
www.books-shop.com
80 Главе .
www.books-shop.com
Повседневные команды ... .**'
www.books-shop.com
82 • Глава 5
www.books-shop.com
Повседневные команды 83
/usr/share/gimp/patterns/moonfoot.pat ;
Результат работы locate будет содержать ключевое слово «foo» в абсолют
ных путях доступа или вообще ничего не покажет.
Is
Синтаксис:
Is [$laR1] <файл или каталог>
Команда Is позволяет выводить список файлов и подкаталогов указанного
каталога. Это одна из наиболее часто используемых программ. Когда она ис
пользуется с параметром 1, выводятся только имена файлов и каталогов в те
кущем каталоге; когда используется параметр 1, выводится длинный список,
содержащий информацию о полномочиях файлов/каталогов, размер, дату
изменения и т.д.; параметр а позволяет увидеть все файлы и каталоги (вклю
чая те, которые имеют ведущую точку в своих именах) в текущем каталоге; па
раметр R позволяет команде рекурсивно выводить содержимое
подкаталогов, если они существуют.
mkdir
Синтаксис:
mkdir <каталог . . $ . > '
При создании каталога используется команда mkdir. Существуют только
два ограничения на выбор имени каталога: (1) имена файлов могут быть дли
ной до 255 символов и (2) имена каталогов могут содержать любые символы,
кроме /.
fflkdir dirl dir2 dir3
Этот пример создаст три каталога, все в текущем каталоге, при условии,
что в текущем каталоге предоставлены полномочия для записи.
mv
Синтаксис:
mv [$if] <исходный_файл> <файл_получатель>
Используйте команду mv для перемещения или переименования катало
гов и файлов. Команда будет выполнять перемещение или переименование в
зависимости от того, является <файл_получателъ> существующим каталогом
или нет. Чтобы проиллюстрировать это, переименуем существующий ката
лог с именем foo в foobar.
mv foo foobar
Так как foobar еще не существует как каталог, foo будет переименован в
foobar. Если выполняется команда: ,,
mv doc.txt foobar
и foobar является существующим каталогом, будет выполнено перемещение.
Файл doc.txt будет теперь располагаться в каталоге foobar.
Параметр f будет удалять существующие файлы в месте назначения без
предупреждения пользователя. Параметр i будет спрашивать у пользователя,
нужно ли перезаписать каждый файл в месте назначения, когда такой файл
уже существует. Если ответ не начинается с «у» или «Y», файл будет пропу
щен.
pico
Синтаксис:
pico [имя файла]
Это полноэкранный текстовый редактор, который хорошо подходит для
пользователей, переходящих на Linux из среды DOS или Windows.
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
84 Глава 5
pwd
Синтаксис:
pwd
Эта команда выводит текущий рабочий каталог. Для каталогов выводятся
абсолютные пути. Ни один из показанных каталогов не будет жесткой или
мягкой символьной связью.
pwd /home/usr/charmaine
rm
Синтаксис:
rm [$rif] <каталог/файл>
При удалении файла или каталога используется команда rm. Здесь пред
ставлены некоторые примеры:
rm doc.txt
rm "/doc.txt
rm /tmp/f oobar.txt
Чтобы удалить с помощью rm несколько файлов, можно использовать ме
тасимволы или вводить каждый файл отдельно. Например:
rm doc1.txt 'doc2.txt doc3.txt
эквивалентна:
rm doc[l$3].txt
rm — мощная команда, которая при неправильном использовании может
вызвать полный хаос. Например, на диске записана диссертация, над кото
рой пользователь старательно работал в течение последних шести месяцев.
Он решил удалить с помощью rm все файлы типа doc, считая, что находится
в другом каталоге. После того как обнаружится, что не существует файла ре
зервной копии и станет ясно, что нет никаких путей для его восстановления,
пользователю захочется узнать, как избежать таких ошибок в будущем.
Команда rm имеет параметр i, который делает rm интерактивной. Перед
удалением любого файла пользователю выводится приглашение на подтверж
дение операции. Например:
rm $i * . doc
rm: remove thesis.doc (yes/no)? n
Параметр i обеспечивает пользователю средство спасения. На его усмот
рение оставлено право сохранить файл (ответ по) или пострадать от послед
ствий (ответ yes). Параметр (f является полной противоположностью.
Параметр f (force — заставить) приказывает rm удалить все файлы, которые
определены, несмотря на их полномочия. Используйте параметр f только
когда на 100% уверены, что удаляются ненужные файлы.
Чтобы удалить каталог и все файлы/каталоги внутри него, используйте
параметр г. Команда rm r удалит все поддерево.
rm
г documents
Можно объединить параметры г и i:
rm $ri documents
Эта команда будет спрашивать разрешения, прежде чем удалять каждый
файл и каталог.
sort
Синтаксис:
sort t.$rndu] [$о файл_вывода] [файл_ввода/сортированный_файл]
www.books-shop.com
Повседневные команды 85
www.books-shop.com
86 Глава 5
tail
Синтаксис:
tail [$счетчик | _fr] <имя_файла>
Команда tail покажет конец файла. По умолчанию tail будет выводить по
следние 10 строк файла. Чтобы увидеть последние 50 строк файла doc.txt, не
обходимо выполнить команду:
tail $50 doc.txt
Параметр г выводит результат в обратном порядке. По умолчанию (г пока
зывает все строки в файле, а не просто 10 последних. Например, чтобы выве
сти все содержимое файла doc.txt в обратном порядке, используйте:
tail $г doc.txt
Чтобы показать последние 10 строк файла doc.txt в обратном порядке, ис
пользуйте:
tail $Юг doc.txt
Наконец, параметр f полезен для мониторинга файла. С помощью этого
параметра tail будет Ожидать, когда в файл будут записаны новые данные. Как
только новые данные добавляются к файлу, tail будет выводить их на экран.
Чтобы отменить мониторинг файла, нажмите Ctrl+C (клавишу intr), посколь
ку сама команда tail не остановится.
touch
Синтаксис:
touch <файл или каталоо
Эта команда обновляет метку времени файла или каталога. Если указан
ный файл не существует, будет создан пустой файл.
umask
См. главу 4, раздел об используемых по умолчанию полномочиях файлов.
uniq
Синтаксис:
uniq [$с] <имя_файла>
www.books-shop.com
Повседневные команды 87
'
www.books-shop.com
88 Глава 5
www.books-shop.com
Повседневные команды 89
www.books-shop.com
90 Глава 5
Эта команда вернет имя пакета RPM, который использовался для установ
ки sendmail. Чтобы найти, какому пакету принадлежит определенный файл,
такой как /bin/tcsh, выполните:
rpm $qf /bin/tcsh
Данная команда выведет имя пакета упомянутого файла. Если нужно най
ти документацию, которая пришла вместе с файлом, используйте параметр d
вместе с параметром qf. Чтобы перечислить все файлы, связанные с про
граммой или пакетом (например, sendmail), используйте параметр 1, как по
казано здесь:
rpm $ql sendmail
Чтобы убедиться, что установленный пакет никаким образом не был изме
нен, можно использовать параметр V. Например, для проверки, все ли уста
новленные пакеты находятся в исходном состоянии, выполните:
rpm $Va
Этот параметр очень полезен, если стало известно, что один или несколь
ко пакетов могли быть повреждены.
Чтобы удалить пакет, такой как sendmail, выполните:
rpm $e sendmail
www.books-shop.com
Повседневные команды 91
www.books-shop.com
92
www.books-shop.com
Повседневные команды 93
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
94 Глава S
fdisk
См. главу 2.
mkfs
Синтаксис:
mkfs [$t тип_файловой_системы] [$cv] <устройство_или_точка_монтирования>
[блоки]
Эта команда создает новую файловую систему. Например:
mkfs $t ext2 /dev/hda3
Эта команда создает файловую систему типа ext2 в разделе /dev/hda3
первого жесткого диска IDE. Параметр (с заставляет mkfs выполнить провер
ку на наличие плохих блоков прежде чем создавать файловую систему; пара
метр v указывает на подробный вывод результатов.
mkswap
См. главу 2.
mount
Синтаксис:
mount $а [$t тип_файловой_системы] [$о параметр] <устройство> <каталог>
Эта команда монтирует файловую систему. Как правило, параметры мон
тирования для обычно используемых файловых систем хранятся в
/etc/fstab. Например:
/dev/hda6 /intranet ext2 defaults 12
Если эта строка находится в /etc/fstab, можно смонтировать файловую
систему раздела /dev/hda6 следующим образом:
mount /intranet
Та же самая файловая система может монтироваться иначе:
mount $t ext2 /dev/hda6 /intranet
Параметр t используется для определения файловой системы. Чтобы
смонтировать все файловые системы, определенные в /etc/fstab, использу
ется параметр а. Например:
mount $a $t ext2
Эта команда монтирует все файловые системы ext2. Обычно используемы
ми параметрами для ключа о являются го (readonly — только для чтения) и
rw (read/write — чтение/запись). Например:
mount t ext2 о го /dev/hda6 /secured
Эта команда монтирует /dev/hda6 в /secured как файловую систему толь
ко для чтения.
quota
См. главу 7, раздел о мониторинге использования диска.
quotaon
См. главу 7, раздел о конфигурировании системы для поддержки дисковых
квот.
swapoff
Синтаксис:
swapoff $a
Эта команда позволяет отключить устройства свопинга. Параметр а по
зволяет отключить все разделы свопинга, определенные в /etc/fstab.
www.books-shop.com
Повседневные команды 95
swapon
Синтаксис:
swapon $a •
Эта команда позволяет включить устройства свопинга. Параметр а позво
ляет включить все разделы свопинга, определенные в /etc/fstab.
umount
Синтаксис:
.umount $a [$t тип_файловой_системы]
Эта команда демонтирует в текущей системе файловую систему. Например:
umount /cdrom
Эта команда будет демонтировать файловую систему с точкой монтирова
ния /cdrom, параметры которой определены в /etc/fstab.
Параметр а позволяет демонтировать все файловые системы (за исключе
нием файловой системы ргос), определенные в файле /etc/fstab. Можно так
же использовать параметр t для указания определенного типа файловой
системы для демонтирования. Например:
umount a t iso9660
Эта команда демонтирует все файловые системы типа iso9660, которые
обычно являются дисками CDROM.
www.books-shop.com
96
mformat
Синтаксис:
mformat [$t цилиндры] [$h головки] [$s секторы]
Эта утилита позволяет форматировать гибкие диски для хранения мини
мальной файловой системы MSDOS. Считается, что значительно проще
взять диск, отформатированный на компьютере MSDOS, чем определять ци
линдры, головки, секторы и т.д.
mlabel
Синтаксис:
mlabel [$vcs] <дисковое_устройство>:[новая_метка]
Эта утилита показывает текущую метку тома (если она существует) указан
ного дискового устройства и предлагает ввести новую метку если она не вве
дена в командной строке. Параметр v выводит шестнадцатеричный дамп
загрузочного сектора указанного дискового устройства; параметр с очищает
существующую метку тома, a s показывает существующую метку дискового
устройства.
$: • ^
www.books-shop.com
Повседневные команды 97
www.books-shop.com
98 Глава 5
www.books-shop.com
Повседневные команды 99
userdel
См. главу 7 раздел об удалении или отключении учетной записи пользова
теля.
usermod
См. главу 7, раздел о модификации существующей учетной записи пользо
вателя.
who
Синтаксис:
who
Эта команда выводит информацию о пользователях, которые в настоящее
время зарегистрированы в системе. Можно использовать для той же цели
команду w.
whoami
Синтаксис:
whoami
Эта команда выводит текущее имя пользователя.
www.books-shop.com
100 Глава 5
www.books-shop.com
Повседневные команды 1Ш
pine
Синтаксис:
pine
Это полноэкранный почтовый клиент SMTP. Благодаря удобному пользо
вательскому интерфейсу программа хорошо подходит для тех пользователей
Linux, которые еще не очень хорошо в нем разбираются.
rlogin
Синтаксис:
rlogin [$1 имя_пользователя] <хост>
Команда позволяет удаленно зарегистрироваться на хосте. Например,
чтобы зарегистрироваться на хосте shell.myhost.com, выполните:
rlogin shell.myhost.com
Так как утилита rlogin не считается безопасной, ее рекомендуют использо
вать только в замкнутой среде локальной сети. Параметр 1 позволяет опреде
лить имя пользователя, которое будет использоваться для аутентификации.
Если необходимо удаленно регистрироваться на хосте, не вводя пароль, со
здайте файл .rhosts в домашнем каталоге пользователя. Добавьте имя хоста
или IPадрес компьютера, который будет использоваться для отправки запро
сов rlogin. Еще раз подчеркнем, что широко использовать эту утилиту не ре
комендуется, так как считается, что она нарушает защиту системы.
talk
Синтаксис:
talk <имя_пользователя> tty
Если надо послать сообщение другому пользователю, с этим прекрасно
справится электронная почта. Но если необходимо пообщаться с другим по
льзователем в реальном времени, как при телефонном разговоре, используй
те команду talk. '
Для того чтобы поговорить с другим зарегистрировавшимся пользовате
лем, введите:
talk ronak@csus.edu
Пользователь, которого запрашивают, должен будет принять запрос talk.
Когда пользователь примет запрос talk, можно начинать общаться друг с дру
гом, печатая текстовые сообщения. Программа talk будет остановлена, когда
любая из сторон нажмет Ctrl+C (клавишу intr).
telnet
Синтаксис:
telnet <имя_хоста или 1Р_адрес> [порт]
Используемую по умолчанию клиентскую программу Telnet можно приме
нять для соединения с сервером Telnet. Например:
telnet shell.myportal.com
Откроется соединение Telnet с системой shell.myportal.com, если упомя
нутый хост выполняет сервер Telnet. Когда соединение открыто, будут запро
шены имя пользователя и пароль, а после успешной регистрации будет
разрешен доступ по учетной записи локального пользователя на сервере Telnet.
wall
Синтаксис:
wall
Эта команда позволяет послать текстовое сообщение на терминал любого
пользователя, который не отключил доступ для записи на своем tty с
www.books-shop.com
102 Глава 5
www.books-shop.com
Повседневные команды 1Ш
netcfg
См. главу 9, раздел об использовании netcfg для конфигурирования сетево
го адаптера.
netstot
Синтаксис:
netstat t$r] [$а] [$с] [$1]
Эта программа выводит статус сетевых соединений, как входящих в локаль
ную систему, так и выходящих из нее. Например:
netstat $a
Команда выводит все сетевые соединения локальной системы. Чтобы уви
деть таблицу маршрутизации, используйте параметр г. Чтобы непрерывно
выводить статус сетевых соединений, используйте параметр с. Чтобы вывес
ти информацию обо всех сетевых интерфейсах, используйте параметр i.
nslookup
Синтаксис:
nslookup [$query=Tnn_3anHCM_DNS] Гимя_хоста или IP] [сервер_имен]
Эта команда позволяет выполнять запросы DNS. Можно запрашивать сер
вер DNS интерактивным образом или сразу искать информацию.
Например:
nslookup $query=mx iptegratipnlogic.com
Эта команда будет сразу возвращать запись MX для домена integrationlo
gic.com.
nslookup $query=mx integrationlogic.com ns.nitec.com
Эта команда будет делать то же самое, но вместо используемого по умолча
нию сервера имен, который определен в файле /etc/resolv.conf, она обра
тится к серверу имен ns.nitec.com. Можно также использовать q вместо
query. Например:
nslookup $q=a www.formtrack.com
Эта команда возвращает IPадрес (запись Address) для указанного имени
хоста. Можно также выполнять nslookup в интерактивном режиме. Выполни
те команду без параметров — появится приглашение nslookup. В строке при
глашения nslookup можно ввести «?», чтобы получить справку. Если в
будущем планируется выполнение нескольких запросов DNS, интерактивный
режим может быть очень полезным. Например, чтобы запросить записи NS
Для множества доменов, таких как adengine, com и classifiedworks. com, введи
те следующую команду:
set query=ns
Когда тип запроса задан как ns, можно просто ввести adengine.com и
ждать ответа, а когда он будет получен т проверить имя следующего домена и
т.д. Если необходимо изменить сервер имен, находясь в режиме приглаше
ния nslookup, используйте команду server. Например:
server ns.ad$engine.com
Это заставит nslookup использовать ns.adengine.com в качестве сервера
имен. Чтобы завершить интерактивный режим и вернуться к приглашению
оболочки, введите exit в строке приглашения nslookup.
ping
Синтаксис:
ping [с счетчик] [s размер_пакета] [1 интерфейс]
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
104 , Глава б
www.books-shop.com
Повседневные команды 105
route
Синтаксис:
route add $net <сетевой_адрес> <сетевая_маска> dev <устройство>
route add $host <имя_хоста или 1Р$адрес> dev <устройство>
route add default gw <имя_хоста или 1Р$адрес>
Эта команда позволяет контролировать маршрутизацию компьютера. На<
пример, чтобы создать используемый по умолчанию маршрут для сети, исполь<
зуйте команду route следующим образом:
route add $net <сетевой_адрес> <сетевая_маска> <устройство>
Например, чтобы создать используемый по умолчанию маршрут для сети
206.171.50.48 с сетевой маской 255.255.255.240 и ethO в качестве интерфейса,
можно выполнить:
route add net 206.171.50.48 255.255.255.240 ethO
Для того чтобы задать используемый по умолчанию шлюз, выполните
команду route:
route add default gw <имя_хоста> <устройство>
Например, чтобы задать адрес используемого по умолчанию шлюза
206.171.50.49, можно выполнить такую команду:
route add default gw 206.171.50.49 ethO
С помощью следующей команды можно проверить, что маршрут сети и ис<
пользуемый по умолчанию шлюз в таблице маршрутизации заданы правильно:
route $n
Вот пример вывода предыдущей команды:
Kernel IP routing table
Destination Gateway Genmask, Flags Metric Ref Use Iface
206.171.50.48 0.0.0.0 255.255.255.240 U 0 0 6 ethO
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 5 lo
0.0.0.0 206.171.50.49 0.0.0.0 UG Q 0 17 ethO
tcpdump
Синтаксис:
tcpdump <выражение>
Это замечательный инструмент отлаживания сети. Например, чтобы про<
следить все пакеты между двумя хостами brat, nitec.com и reboot.nitec.com, ис<
пользуйте команду:
tcpdump host brat.nitec.com and reboot.nitec.com
www.books-shop.com
106 Глава Б
www.books-shop.com
Повседневные команды 107
www.books-shop.com
108 Глава 5.
www.books-shop.com
дневные команды 10$,
'
ispell
:
Синтаксис: ' .. •. •• * •• • • ••••••'> ••*•.• '••
ispell <имя_файла^
Это программа проверки в интерактивном режиме правописания в тек
стовых файлах. Если в файле есть грамматические ошибки, программа пред
ложит правильное написание и предоставит возможность заменить ошибку
правильно написанным словом. ?;,
mesg
7
Синтаксис:
mesg [у | п]
Эта программа разрешает или запрещает открытый доступ для записи на
терминал пользователя. Например:
mesg у
Эта команда разрешит доступ для записи на терминал, чтобы другой поль
зователь в этой же системе мог использовать команду write для отправки тек
стовых сообщений. Параметр п запрещает доступ для записи. Если
пользователь не хочет, чтобы его ктолибо беспокоил, он может добавить
mesg n к своему файлу сценария регистрации в системе (.login).
write
Синтаксис:
write <имя_пользователя> tty
Программа позволяет посылать текстовые сообщения указанному пользо
вателю, если он не запретил доступ для записи к своему tty.
Например:
write shoeman
Эта команда позволит вывести текстовое сообщение на экране и, когда со
общение будет закончено нажатием Ctrl+D, оно появится на терминале поль
зователя shoeman. Если пользователь зарегистрировался более одного раза,
нужно будет дополнительно указать имя терминала. Например:
write shoeman ttypO
Команда позволяет написать пользователю shoeman и вывести сообщение
на терминале ttypO. Если ктото имеет несколько открытых терминалов, мож
но выполнить команду w или who, чтобы увидеть, какой выбрать tty (терми
нал).
Команды оболочки
Здесь представлено несколько часто используемых команд оболочки.
alias
Синтаксис:
alias <имя_алиаса> = <команда>
Эта встроенная команда'оболочки, существующая в большинстве популяр
ных оболочек,,позволяет создавать псевдонимы (алиасы) команд. Например:
alias dir Is $1
Команда создает псевдоним dir для команды Is 1. Чтобы увидеть весь спи
сок доступных псевдонимов, выполните команду alias без аргументов.
history
Синтаксис:
history
www.books-shop.com
110 Глава 5
www.books-shop.com
Повседневные команды 111
Ipq
Синтаксис:
Ipq [$al] [$P принтер]
Команда Ipq показывает статус принтеров. Если Ipq вводится без аргументов,
то предоставляется информация об используемом по умолчанию принтере.
Ipq
Printer: lp@rembrandt 'Generic dot$matrix printer entry'
Queue: no printer jobs in queue
Status: server finished at 21:11:33
Параметр Р указывает информацию об определенном принтере. Пара
метр а будет возвращать статус всех принтеров.
С помощью параметра 1 Ipq будет сообщать идентификационный номер
задания, имя пользователя, который запросил задание печати, создавший за
дание сервер, положение в очереди, описание задания и размер задания.
Ipr
Синтаксис:
Ipr [$1 размер отступа в столбцах] [$Р принтер] [имя_файла]
Эта команда будет посылать файл в спулер (буфер подкачки) печати. Если
имя файла не задано, предполагаются данные из стандартного ввода.
Параметр i позволяет начать печатать в определенном столбце. Чтобы за
дать определенный принтер, можно использовать параметр Р <принтер>.
Ipr main.с
Эта команда попытаться напечатать файл main.с.
Iprm
Синтаксис:
Iprm [$а] [идентификатор_задания] [all]
Команда Iprm посылает запрос команде Ipd, чтобы удалить некоторый
элемент из очереди печати. Задания печати для удаления могут быть опреде
лены с помощью идентификатора (ID) задания или имени пользователя,
либо можно указать все элементы очереди.
Чтобы удалить все задания во всех очередях печати:
Iprm $a all
Чтобы удалить все задания для пользователя «kiwee» на принтере «pi»:
Iprm $Pp1 kiwee
www.books-shop.com
www.books-shop.com
Часть 3
Управление
пользователями,
процессами и сетями
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
www.books-shop.com
Глава 6
Использование Linuxconf
В этой главе:
www.books-shop.com
116 Глава 6
www.books-shop.com
Использование Linuxconf 117
Таблица 6.1.
Модули, Модуль Описание ^___
поставляемые Apache Модуль конфигурации Web$сервера Apache
с Linuxconf Dhcpd Модуль конфигурации сервера протокола динамического конфигурирования
версии 1.1.3 хоста (DHCP)
Dialout Модуль конфигурирования исходящего соединения РРР (не требуется, если
используется модуль redhatppp)
Dnscnf Модуль конфигурирования DNS для сервера имен BIND версий 4 и 8
Rrewall Модуль конфигурирования брандмауэра, который позволяет фильтровать паке$
ты на уровне ядра, IP$подстановку, переадресацию портов и учет IP$адресов
Mailconf Конфигурирование сервера SMTP Sendmail
Mold Модуль конфигурирования файла сообщения дня (/etc/mold)
Mrtg Модуль конфигурирования Mrtg (Multi$router Traffic Grapher, многопутевой по$
строитель графиков трафика)
Netadm Модуль конфигурирования сети
Pppdialin Модуль конфигурирования РРР
Rarp Модуль конфигурирования таблицы RARP ядра Linux
Модуль конфигурирования служб коммутируемого доступа (PPP/SLJP/PUP) для
Red Hat Linux
Samba Модуль конфигурирования Samba
Squid Модуль конфигурирования прокси Squid
Status Модуль статуса системы
Treemenu Внутренний модуль LJnuxconf
Usermenu Внутренний модуль Linuxconf
Wuftpd Конфигурационный модуль FTP$сервера (wu$ftpd)
Xterminals Модуль конфигурирования X$терминала
Установка Linuxconf
Установка Linuxconf выполняется достаточно просто. Если Linuxconf не
был установлен во время установки Red Hat Linux, можно установить его в
любое время из пакета RPM, поставляемого на официальном компактдиске
Red Hat или на компактдиске, содержащемся в этой книге. Можно также за
грузить пакет RPM с официального узла FTP Linuxconf по адресу f t p : / / f t p .
solucorp.qc.ca/pub/linuxconf/devel/.
Проверьте, загружен ли пакет RPM, предназначенный для вашей версии
Red Hat Linux. Пакет RPM можно установить, выполняя команду rpm ivh
<пакет>, где <пакет> является именем реального пакета.
Теперь посмотрим, как сконфигурировать Linuxconf для работы в системе.
Конфигурирование Linuxconf
Linuxconf можно использовать различными способами. Linuxconf автома
тически выбирает текстовый (для консоли или удаленной оболочки) или гра
фический режим (для X Window). Например, если пользователь
зарегистрировался на системной консоли и выполнил /bin/linuxconf из
командной строки, то появится экран, как на рис. 6.1.
www.books-shop.com
118 Глава 6
www.books-shop.com
Использование Linuxсonf 119
Рис. 6.5.
Графический
интерфейс Linuxconf
Рис. 6.6.
Окна с закладками
в графическом
интерфейсе Linuxconf
закладками щелчком других пунктов меню дерева. Это очень гибкий и удоб
ный способ одновременной работы с несколькими пунктами меню.
Когда пользователь закрывает программу, Linuxeonf попросит его приме
нить все изменения, которые были сделаны ранее. Пользователю разрешен
предварительный просмотр изменений или выход без активации текущей
конфигурации.
К сожалению, интерфейс Linuxeonf на основе Web оказался самым неудач
ным среди всех трех вариантов, хотя он должен был быть самым живым и не
традиционным. В этой книге при обсуждении вопросов, связанных с Linuxeonf,
будет использоваться графический интерфейс, как наиболее удобный.
По умолчанию можно получить доступ к интерфейсу Linuxeonf на основе
Web только на локальном хосте. Другими словами, необходимо использовать
Webбраузер на той же машине, на которой запущена Linuxeonf. На рис. 6.7 —
основная страница Linuxeonf для этого интерфейса.
Обратите внимание на URL ( h t t p : //localhost: 98/). Здесь требуется «local
host», так как по умолчанию в связи с защитой запрещен удаленный
www.books-shop.com
120 Глава 6
Рис. 6.7.
Основная
Webстраница
Unuxconf
www.books-shop.com
Использование Linuxconf 121
Рис. 6.8.
Конфигурирование
сетевого доступа
Linuxconf
www.books-shop.com
122 Глава 6
6. Когда введены имена хостов или IPадреса или пары сеть/сетевая мас
ка, щелкните кнопку Activate.
7. Щелкните кнопку Quit для выхода из Lmuxconf и активизации текущей
конфигурации (когда это будет предложено).
Это позволит именованным хостам (или IPадресам) получить доступ к
Lmuxconf через Web.
Как уже упоминалось, Linuxconf использует для создания реальной конфи
гурации как функции внутреннего кода, так и внешние модули. В настоящее
время пакет RPM для Linuxconf поставляется практически со всеми доступ
ными модулями. Это, скорее всего, временно, так как модули Linuxconf, в
действительности, должны поставляться с отдельными пакетами. Например,
пакет Apache для Red Hat Linux должен содержать модуль Linuxconf. Если
Webсервер Apache не используется, то модуль Apache в вашей конфигурации
Linuxconf не нужен. Чем больше модулей используется, тем более захламля
ется интерфейс Linuxconf. Если разработчики приложений будут поставлять
модули самостоятельно, тогда пользователь будете иметь только то, что ему
нужно. Будем надеяться, что Linuxconf пойдет по этому пути уже в ближай
шем будущем. Пока этого не произошло, можно вручную сконфигурировать в
Linuxconf требуемые модули.
www.books-shop.com
Использование Linuxconf 123
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
124 Глава 6
Информация об
учетной записи
пользователя
служб. Набор доступных в системе служб зависит от того, что было установ
,лено. Рис. 6.13 иллюстрирует доступные службы в системе.
1. Если необходимо, чтобы пользователь стал менеджером учетных запи
сей пользователей POP/PPP/UCCP, щелкните закладку «User acco
unts» и предоставьте соответствующие привилегии. Можно также
щелкнуть закладку «Miscellaneous» и предоставить пользователю указан
ные там привилегии.
2. Щелкните кнопку Accept и выйдите из Linuxconf, щелкнув кнопку Quit
и активизируя тем самым сделанные изменения.
После выхода из Linuxconf зарегистрируйтесь в системе по учетной запи
си указанного в утилите пользователя и запустите Linuxconf. Проверьте свои
новые привилегии. Убедитесь, что они именно те, которые требовалось при
своить. Если данный пользователь, имеет все необходимые привилегии, мож
но считать работу законченной.
Теперь рассмотрим интересное свойство Linuxconf, которое позволяет
создавать в системе Red Hat Linux множество системных профилей.
www.books-shop.com
Использование Linuxconf 125
О
Рис. 6.12.
Параметры
привилегий
пользователя
Рис. 6.13.
Службы,
управляемые
с помощью Linuxconf
www.books-shop.com
126 Глава 6
Доступные
(по умолчанию)
системные профили
www.books-shop.com
Использование Linuxconf 127
Рис. 6.15.
Определение
текущего системного
профиля
Рис. 6.16.
Добавление имени
нового системного
профиля
www.books-shop.com
128 Глава 6
www.books-shop.com
Использование Linuxconf 129
Рис. 6.18.
Окно конфигурации
режима загрузки
Использование Linuxconf
Linuxconf может использоваться для конфигурирования и активизации
различных системных операций. Однако пока еще не все может быть полно
стью сконфигурировано. Одним из основных недостатков текущей версии
Linuxconf является отсутствие необходимой документации. Так как нет уве
ренности в том, что утилита Linuxconf готова для широкой эксплуатации, бу
дем рассматривать специальные конфигурационные параметры Linuxconf
там, где это уместно. Другими словами, вместо обсуждения различных вопро
сов о том, как конфигурировать sendmail или NFS с помощью Linuxconf, рас
смотрим нужные специальные параметры конфигурации Linuxconf в главах о
sendmail или NFS, где также обсуждаются традиционные средства конфигу
рирования этих служб.
www.books-shop.com
www.books-shop.com
Глава 7
Управление пользователями
В этой главе:
• Суперпользователи или привилегированные учетные записи
• Создание, изменение и удаление пользователей и групп
• Дисковые квоты для пользователей
www.books-shop.com
132 Глава 7
www.books-shop.com
Управление пользователями 133
Присвоение привилегий
обыкновенным пользователям
Используя команду sudo, можно разрешить обыкновенным пользователям
выполнять команды, которые обычно выполняет суперпользователь. Пред
положим, что в организации работают главный системный администратор и
два новых системных администраторапомощника. Можно передать этим
двум помощникам некоторые рутинные административные задачи главного
администратора. Нужно ли создавать две дополнительные учетные записи су
перпользователя с UID и GID, равными нулю, чтобы эти два администратора
могли иметь полный доступ ко всем ресурсам системы? Это зависит от того,
насколько им можно доверять. Будьте крайне осторожны, работая в качестве
суперпользователя. Поскольку появление доверия требует некоторого време
ни, можно предположить, что новым администраторам будет предоставлен
доступ только к тому, в чем у них есть необходимость. Для этого нужно так
сконфигурировать sudo, чтобы позволить этим сотрудникам как обыкновен
ным пользователям выполнять привилегированные команды. Вот каким об
разом.
Команда sudo разрешает пользователям, определенным в файле /etc/su
doers, выполнять команды суперпользователя. Например, обыкновенный
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
134 Глава 7
www.books-shop.com
Управление пользователями 135
www.books-shop.com
136 Глава 7
User_Alias SENIORADMIN=yourid
User_Alias ASSISTANTS=sysad1,sysad2
Управление пользователями
с помощью утилит командной строки
По мере того как система Linux становится все более популярной, компа
ния Red Hat и сообщество Linux в целом стараются максимально упростить
ее использование. Проект linuxconf является тому хорошим примером. Одна
ко традиционный способ управления системой UNIX попрежнему нужен,
чтобы пользователи других операционных систем UNIX могли легко управ
лять системами Linux. В этом разделе будет показан традиционный способ
реализации управления пользователями с помощью различных утилит коман
дной строки.
www.books-shop.com
Управление пользователями 137
www.books-shop.com
138 Глава 7
таких как root, bin и mail. Поэтому если файл /etc/group имеет последнее за
данное значение GID для группы равным 511, вновь созданная с помощью
этой программы группа будет иметь GID, равный 512, и т.д. Если нужно за
дать GID новой группы особым образом, используйте параметр g GID. Также,
если потребуется создать группу с GID в диапазоне 0499, используйте пара
метр г вместе с параметром g GID, чтобы заставить groupadd создать новую
группу в виде системной. Обратите внимание, что если GID или группа, кото
рая задается в программе groupadd, уже используется в /etc/group, возник
нет сообщение об ошибке.
Модификация существующей
учетной записи пользователя
Весьма распространены проблемы, возникающие в связи с забытыми па
ролями пользователей, причем решать их приходится системному админист
ратору. Как можно изменить различные параметры учетной записи
пользователя?
Изменение пароля
Чтобы изменить или указать пароль пользователя, используйте команду
passwd. Например:
passwd kabir
Команда позволит изменить пароль пользователя kabir. Чтобы подтвер
дить пароль, будет предложено ввести его дважды. Убедитесь, что для поль
зователей задаются хорошие пароли. Не используйте легко запоминающиеся
пароли на основе слов из словаря. Обратите внимание, что программа passwd
может выполняться самим пользователем для изменения своего собственно
го пароля. Когда рядовой пользователь использует программу passwd, ему не
нужно задавать аргумент с именем пользователя, так как утилита разрешает
пользователю изменить только его собственный пароль.
Изменение оболочки
ЕСЛИ пользователю не подходит используемая по умолчанию оболочка,
можно изменить ее на любую из тех, что перечислены в файле /etc/shells.
Используйте команду chsh для изменения оболочки пользователя. Например:
chsh brian
Эта команда позволяет изменить текущую оболочку пользователя brian.
Если определить оболочку или имя программы, которые не присутствуют в
файле /etc/shells, пользователь не сможет зарегистрироваться в системе.
Этой командой пользователь может изменить свою собственную оболочку.
Обыкновенному пользователю не нужно указывать в качестве аргумента имя
пользователя, так как он может изменить только свою собственную оболочку.
Обратите внимание, что можно использовать команду usermod для изме
нения информации об оболочке следующим образом:
usermod $s <путь_новой_оболочки> <имя_пользователя>
www.books-shop.com
Управление пользователями 139
www.books-shop.com
140 Глава 1
www.books-shop.com
Управление пользователями 141
www.books-shop.com
142 Глава 7
www.books-shop.com
Управление пользователями 143
CHFN_RESTRICT yes
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
144
Добавление новой
учетной записи
пользователя
Добавление
привилегий новой
учетной записи
пользователя
www.books-shop.com
Управление пользователями 145
$о
можно сделать с помощью пункта меню Control > Control Panel > Activate
или при выходе из linuxconf.
Модификация существующей
учетной записи пользователя
Чтобы модифицировать учетную запись пользователя в linuxconf, выберите
пункт меню Config > User accounts > Normal > User accounts из левой полови
ны окна. Вы увидите окно с закладкой, показанное на рис. 7.1. Теперь щелк
ните имя учетной записи на правой половине окна — появится окно с
закладкой, как на рис. 7.2, но содержащее всю информацию об учетной запи
си. Можно изменить все, что потребуется, и воспользоваться пунктом меню
Control > Control Panel > Activate configuration, чтобы активизировать изме
нения немедленно или при выходе из linuxconf.
Удаление или отключение существующей
учетной записи пользователя
Чтобы удалить или отключить учетную запись пользователя, выберите в
левой половине окна пункт меню Config > User account > Normal > User acco
unts. Появится окно с закладкой, как на рис. 7.1. Теперь щелкните имя учет
ной записи на правой стороне — появится окно с закладкой, как на рис. 7.2,
но содержащее всю информацию о данной учетной записи. Чтобы удалить
эту учетную запись, щелкните кнопку Del. Чтобы отключить эту учетную за
пись, снимите флажок в поле «This account is enabled».
www.books-shop.com
146 Глава 7
Добавление новой
группы
www.books-shop.com
Управление пользователями 147
www.books-shop.com
148 Глава 7
www.books-shop.com
Управление пользователями 149
помощью команды edquota <t. При выполнении этой команды в редакторе по<
явится что<то подобное:
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/sda5: block grace period:. 7 days, file grace period: 5 days
(Единицами измерения времени могут быть дни, часы, минуты или секунды.
Период отсрочки перед применением к пользователю мягких ограничений:
/dev/sda5: период отсрочки в блоках: 7 дней, период отсрочки в файлах:
5 часов)
Здесь период отсрочки на ограничение дискового пространства (в бло<
ках) равен 7 дням, а период отсрочки на количество файлов (inodes) равен
только 5 часам.
www.books-shop.com
www.books-shop.com
Глава 8
Управление процессами
В этой главе:
• Запуск процессов
• Посылка сигналов выполняющемуся процессу
• Выполнение процессов в основном или фоновом разделе
• Задание приоритета процесса с помощью nice
• Контроль за процессами системы
• Запись в журнал сообщения процессов с помощью syslog
• Автоматизация выполнения процесса с помощью at и сгоп
Запуск процессов
Как известно из главы 3, когда запускается компьютер, его встроенное
программное обеспечение (BIOS) выполняет программу начальной загруз
ки (обычно находящуюся на загрузочном диске). Программа начальной за
грузки стартует ядро. Ядро в свою очередь выполняет программу ink.
www.books-shop.com
152 Глава 8
www.books-shop.com
Управление процессами 153
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
154 Глава 8
www.books-shop.com
Управление процессами 155
www.books-shop.com
156 Глава i
»
print «SBANG;
ttl/usr/bin/perl
SBANG
foreach Ssignal (keys %SIG) {
print «SIG;
\$SIG{$signal> = sub { print "Caught a Ssignal signal.\\n"; } ;
SIG
}
print « MAIN;
print "Hello, my PID is \$\$.\\n";
print "Use kill signal \$\$ command to experiment on me.\\n";
# Задать 10c событие тревоги.
alarm (10);
# Бесконечный цикл
while(1) {
sleep(1); tt Остановиться на 1 с.
}
MAIN
Этот относительно небольшой сценарий Perl создает другой сценарий
Perl. Выполните сценарий:
gen_signal_demo. pi > signal_demo.pl
Просмотрев созданный сценарий, можно заметить, что он определяет
программы обработки сигналов с помощью следующей конструкции:
$SIG{.сокращенное имя сигнала} = sub { it код обработчика };
Например:
$SJG{INT} = sub { print "Caught a INT signal. \n"; > ;
Здесь определен обработчик SIGINT. Он печатает «Caught a INT sig
nal.\n», когда сценарий посылает сигнал SIGINT. Выполните сценарий sig
nal_demo.pl таким образом:
./signal_demo. pi
Вывод будет подобен этому:
Hello, my PID is XXXX
Use kill $$signal XXXX command to experiment on me.
Строка XXXX будет заменена реальным PID процесса. Прежде чем можно
будет использовать команду kill для отправки различных сигналов этой про
грамме, просмотрите таблицу 8.3, чтобы найти дополнительную информа
цию по каждому сигналу.
Когда начнет выполняться сценарий signal_demo.pl, воспользуйтесь дру
гой виртуальной консолью и загрузите оболочку или xterm (если вы в X Win
dows), чтобы посылать сигналы процессу. При выполнении сценария он
выводит PID, поэтому нет необходимости выполнять ps, чтобы найти PID
этого процесса. Посылайте процессу любые сигналы из только что перечис
ленных и наблюдайте за сообщениями, которые он выводит. Например, если
PID этого процесса равен 12345 и выполняется:
kill HUP 12345
будет получено:
Caught a HUP signal.
www.books-shop.com
Управление процессами 157
Доступные сигналы
Номер Имя (корот$ Описание
кое имя)
1 SIGHUP (HUP) Прекратить. Этот сигнал часто используется для приказа про$
цессу перезагрузить конфигурационные файлы
2 SIGINT (INT) Прервать
3 SIGQUIT (QUIT) Завершить
4 SIGILL (ILL) Незаконная инструкция
5 SIGTRAP (TRAP) Выявить ловушку
6 SIGIOT (ЮТ) Инструкция ЮТ
7 SIGBUS (BUS) Ошибка шины
8 SIGFPE (FPE) Исключение с плавающей точкой
9 SIGKILL (KILL) Уничтожить. Этот сигнал нельзя перехватить (т.е. обработать в
процессе), заблокировать или проигнорировать
10 SIGUSR1 (USR1) Определенный пользователем сигнал 1
11 SIGSEGV (SEGV) Нарушение сегментации
12 SIGL/SR2 (USR2) Определенный пользователем сигнал 2
13 SIGPIPE (PIPE) Запись в канал, который никто не сможет прочитать
14 SIGALRM (ALRM) Тревога (будильник)
15 SIGTERM (TERM) Сигнал прекращения программы. Он часто посылается перед от$
правкой сигнала KILL, что позволяет процессу перехватить этот
сигнал и подготовиться к выходу ^
16 SIGSTKFLT Ошибка стека сопроцессора
17 SIGCHLD (CHLD) Изменился статус потомка
18 SIGCONT (CONT) Продолжить после сигнала STOP. Этот сигнал не может быть
блокирован
19 SIGSTOP (STOP) Остановить. Сигнал не может быть перехвачен (т.е. обработан в
процессе), блокирован или игнорирован
20 SIGTSTP (TSTP) Сигнал остановки, созданный на клавиатуре, обычно с помощью
Ctrl+Z
21 SIGTTIN Чтение в фоновом режиме, предпринятое с терминала управле$
ния
22 SIGTTOU Запись в фоновом режиме, произведенная на терминал управле$
ния
23 SIGURG В сокете установлено условие срочности
24 SIGXCPU Превышено ограничение на время процессора.
См. man setrlimit (2)
25 SIGXFSZ Превышено ограничение на размер файла. См. man setrlimit (2)
26 SIGVTALRM Аварийный сигнал виртуального времени. См. man setrtimer (2)
27 SIGPROF Аварийный сигнал профилирующего таймера.
См. man setitimer (2)
28 SIGWINCH Изменение размера окна
29 SIGIO Возможен ввод/вывод в дескриптор. См. man fcntl (2)
30 SIGPWR Отказ питания
31 UNUSED He используется
www.books-shop.com
158 8
Когда посылается сигнал KILL, с помощью kill KILL 12345, процесс завер
шается, так как этот сигнал не может быть перехвачен обработчиком сигна
лов. Аналогично, если послать процессу сигнал STOP, процесс будет
приостановлен, после чего появится сообщение:
Suspended (signal)
Можно выполнить команду ps и увидеть, что поле STAT показывает
флаг Т. Это означает окончание процесса. Но в действительности процесс
остановлен, а не закончен. Чтобы вернуть процесс в режим выполнения,
можно послать ему сигнал CONT. Интересное свойство режима остановки
состоит в том, что процесс попрежнему может получить все ожидающие сиг
налы, которые были посланы во время периода его остановки. Другими сло
вами, если процесс был приостановлен с помощью сигнала STOP, а затем
был послан сигнал HUP во время приостановки процесса, этот сигнал посы
лается процессу, когда он снова начинает выполняться после получения сиг
нала CONT.
Большинство сигналов, перечисленных в таблице 8.3, редко используются
вне системных программ. Системный администратор скорее всего будет ис
пользовать только HUP, INT, TERM, STOP и KILL. Вместо указания имен сиг
налов в команде kill можно использовать номера сигналов. Например, чтобы
послать сигнал KILL, можно либо выполнить kill KILL PID или kill 9 PID.
А еще лучше уничтожить процесс по имени, используя утилиту killall.
Использование killall
Эта утилита позволяет уничтожить процесс, указав его имя. Например,
если существует процесс с именем signal_demo.pl и нужно его уничтожить, не
вводя PID, можно выполнить команду:
killall —KILL signal_demo. pi
Если имя сигнала не задано, killall автоматически посылает сигнал
SIGTERM. Однако будьте очень осторожны при использовании killall, так как
утилита уничтожает все экземпляры упомянутой команды. Иногда незнание
значения PID может обернуться неприятностью. Например, посмотрите на
вывод ps:
PID TTY STAT TIME COMMAND
1246 p8 S 0:00 tcsh
2160 p6 S 0:00 tcsh
2365 p1 S 0:00 bash
2459 p6 S 0:00 vi bar.txt
2460 p8 S 0:00 vi foo.txt
2463 p1 R 0:00 ps
Предположим, что по какимто причинам необходимо уничтожить про
цесс vi, используемый для редактирования файла foo.txt. Если для прекраще
ния выполнения только этого экземпляра vi будет выполнена команда killall
vi foo.txt, окажется что все сеансы vi прекращены. Это связано с тем, что kil
lall ожидает в качестве аргументов имена команд и посылает сигналы всем эк
земплярам упомянутой программы.
www.books-shop.com
Управление процессами 159
www.books-shop.com
160
Сеанс top,
выполняющийся в
окне Х$терминала
www.books-shop.com
Управление процессами 161
Использование vmstat
Утилита vmstat также предоставляет интересную информацию о деятель
ности процессов, памяти, ввода/вывода и процессора. Когда утилита выпол
няется без аргументов, вывод подобен этому:
procs memory swap io system cpu
r b w swpd free buff cache si so bi bo in cs us sy id
000 8, 8412 45956 52820 0 00 0 104 11 66 0 33
Поля procs показывают число процессов, ожидающих выполнения (г),
число блокированных процессов (Ь) и число процессов, выгруженных в об
ласть свопинга (w).
Поля memory показывают объем памяти в килобайтах для свопинга, а так
же свободной, буферизованной и кэшированной памяти.
Поля swap показывают объем (в КБ/с) памяти, подкачанной (si) с диска, и
объем памяти, выгруженной (so) на диск.
Поля io показывают число блоков в секунду, посланных (bi) на блочные
устройства и полученных (bo) с блочных устройств.
Поле system показывает число прерываний (in) и переключений контек
ста (cs) в секунду.
Поле cpu показывает процент всего времени процессора для пользовате
лей (us), системы (sy) и простоя (id).
Если необходимо, чтобы vmstat обновлял информацию автоматически,
можно выполнить эту утилиту как vmstat nsec, где nsec это число секунд, кото
рое устанавливает задержку перед следующим обновлением.
Использование uptime
Чтобы быстро получить статистику нагрузки процессов на систему, мож
но выполнить утилиту uptime. Она показывает текущее время системы, как
долго система работала с момента последней перезагрузки, сколько пользова
телей находится в настоящее время в системе и три средние значения нагруз
ки. Средние значения нагрузки являются средними значениями числа
процессов, готовых к выполнению за последние 1, 5 и 15 мин.
www.books-shop.com
162 Глава 8
www.books-shop.com
Управление процессами 163
Планирование процессов
Как и все другие формы UNIX и похожих на нее операционных систем,
система Red Hat Linux предоставляет два широко используемых средства пла
нирования процессов. В этом разделе будет показано, как использовать обе
эти службы.
Использование at
Утилита at позволяет создавать очередь команд для выполнения в более
позднее время. Например, чтобы выполнить утилиту создающую сводку испо
льзования диска, называемую du, в 8:40 вечера, можно выполнить команду at
следующим образом:
at 20:40
Команда at выведет приглашение, такое как «at>», где нужно ввести коман
ду du:
at> du $a > /tmp/du.out
Здесь вывод du направлен в файл. После ввода команды (команды du в
этом примере) at снова выведет свое приглашение. Можно нажать Ctrl+D,
чтобы выйти из приглашения. Появится сообщение, похожее на изображен
ное ниже:
at> <EOT>
warning: commands will be executed using /bin/sh
job 1 at 1999$12$06 20:40
Это означает, что at спланировала задание du a > /tmp/du.out для выпол
нения демоном at (atd) в 8:40 вечера, 12/06/1999. Обратите внимание, что
можно использовать широкий спектр форматов времени для указания време
ни выполнения. Например, вместо 20:40 можно было бы также использовать
8:40 p.m. Разрешено вместе со временем определить дату. Например, разре
шены спецификации времени: 8:40 p.m. feb 23, 10 a.m. + 5 days, 12:30 p.m. to
morrow (завтра), midnight (полночь), noon (полдень).
Чтобы проверить, что задание находится в очереди заданий, выполните
команду atq. Она покажет запланированные на данный момент задания оче
реди. Все они хранятся в каталоге /var/spool/at.
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
164 Глава 8
используя atrm <номер задания>. Например, чтобы удалить задание #1, выпол
ните atrm 1.
Запланированное задание выполняется с помощью процессадемона atd,
который запускается ink для уровня выполнения 3 (многопользовательский
режим). Если необходимо ограничить использование средства at, можно со
здать файл /etc/at.allow и перечислить всех пользователей, которым разре
шено выполнять команду at. Необходимо вводит имена пользователя по
одному в строке. Любой пользователь, не перечисленный в этом файле, не
сможет получить доступ к средству at. С другой стороны, если необходимо за
претить доступ только нескольким пользователям и разрешить всем осталь
ным, можно создать подобный файл с именем /etc/at.deny. Всем именам
пользователей, перечисленным в этом файле, доступ будет запрещен.
Хотя at и предоставляет возможность планирования процессов, другое
средство, называемое сгоn, используется чаще, чем at, так как оно предлагает
структурированный способ создания расписания автоматического выполне
ния процессов для повторяющихся задач.
Использование сгоп
Многие задачи (т.е. процессы) в системе Linux необходимо планировать
для автоматического выполнения на постоянной основе. Например, чтобы
заменить файлы журналов, которые создает syslogd или чтобы удалить ста
рые файлы из каталога /imp, необходимо выполнять определенный процесс
каждый день или каждую неделю. Средство сгоп позволяет создавать расписа
ние повторяющихся задач. Не так давно вообще не было демона atd и все за
дания at выполнялись с помощью программы, называемой atrun, которая в
свою очередь выполнялась с помощью средства сгоп.
Средство сгоn включает демон crond, который запускается процессом init.
Демон crond считывает расписания задач из /etc/crontab и файлов в катало
ге /var/spool/cron. Этот каталог используется для хранения файлов расписа
ний (часто называемых crontab или таблицами сгоп) для обычных
пользователей, которым разрешено выполнять задания сгоп. Суперпользова
тель может определить список пользователей в файле /etc/cron.allow, кото
рым будет разрешено выполнять задания сгоп. Аналогично, можно явно
запретить доступ к сгоn для любых пользователей, определяя их имена в фай
ле /etc/cron.deny. Оба файла используют простой формат с одним именем
пользователя в строке. Если обычному пользователю разрешено выполнять
задания сгоп, он может использовать утилиту crontab для создания расписа
ний заданий. Например, если обычному пользователю разрешено выполнять
задания сгоп, он может выполнять crontab e, чтобы создавать и редактиро
вать записи своих заданий сгоп. Спецификация задания сгоп имеет следую
щий формат:
minute(s) hour(s) day(s) month weekday <имя_пользователя> <команда>
<аргумент(ы)>
Первые пять полей, определяющих время, показаны в таблице 8.4.
Для любого из полей (см. таблицу 8.4) можно использовать «*» в качестве
метасимвола. Пример:
01 * * » * root /some/script
Эта строка определяет, что сценарий /some/script должен выполняться
каждую первую минуту каждого часа, каждого дня, каждого месяца и каждого
дня недели. Сценарий будет выполняться от имени пользователя root. Чтобы
выполнять этот сценарий каждые десять минут, можно определить задание
сгоn, как показано ниже:
О, 10, 20, 30, 40, 50 * * * * root /some/script
Теперь, чтобы выполнять тот же самый сценарий только один раз в ме
сяц, задание сгоn можно спланировать следующим образом:
01 1 1 * * root /some/script
www.books-shop.com
Управление процессами 165
Таблица 8.4. I
Поля задания стоп, Поле Описание Диапазон
определяющие minute(s) Одна или несколько минут за час. Можно определить 0$59
время разделенный запятыми список
минут
hourfs) Один или несколько часов за сутки. Можно определить 0$23, где 0 $ это пол$
разделенный запятыми список часов ночь
day(s) Один или несколько дней за месяц. Можно определить 1$31
разделенный запятыми список дней
month Один или несколько месяцев в году. Можно определить 1$12
разделенный запятыми список
месяцев
weekday Один или несколько дней в неделе. Можно определить 1 $7, где 1 $ это
разделенный запятыми список дней понедельник
www.books-shop.com
166 Глава 8
#!/bin/sh
/usr/bin/rdate $s time.server.host.tld
Задание спланировано. Каждый день в 4:02 утра сценарий будет выполня
ться вместе со всеми другими сценариями и программами в каталоге
/etc/cron.daily.
Как видим, настройка заданий сгоп упорядочена лучше, чем использова
ние команд at для создания очередей задач, поэтому сгоп предпочтительнее
at. На самом деле лучше отключить утилиту at, удалив запись atd из каталога
/etc/rc.d/rc3.d.
www.books-shop.com
Глава 9
Управление сетями
В этой главе:
• Основы построения сетей TCP/IP
• Классификация IPсетей
• Конфигурирование сетевых интерфейсов сервера
• Разделение сети на подсети
акая польза от сервера Red Hat Linux без сети TCP/IP? В этой главе мож
но узнать об основах построения сетей TCP/IP и научиться конфигуриро
вать систему Red Hat Linux для таких сетей.
www.books-shop.com
168 Глава 9
Пример простой
сети TCP/IP .
IP$адрес в
шестнадцатеричном,
двоичном и
десятичном
форматах
www.books-shop.com
Управление сетями 169
Общее число возможных адресов в IPng равно 2'28 или 340 282 366 920 938
463 463 374 607 431 768 211 456. Как видим, IPng наверняка прослужит очень
долго. Сейчас нужно разобраться с текущей схемой IPv4. Эта схема нумера
ции IPадресов позволяет создавать классы IPсетей (см. следующий раздел).
Классификация IP$сетей
Как уже упоминалось, IPадреса используются для идентификации сете
вых интерфейсов на компьютераххостах. Эти адреса присваиваются не слу
чайным образом. Каждый IPадрес несет в себе информацию двух типов.
Чтобы понять, что это такое, рассмотрим некоторую аналогию. Все знакомы
с концепцией кода области в номере телефона. Например, (916) 5555555 яв
ляется номером телефона в США, где 916 является кодом области для города
Сакраменто, Калифорния. Когда ктото в НьюЙорке набирает этот номер,
компьютер телефонной компании соединяет его с телефоном в Сакраменто,
Калифорния. Эта процедура соединения использует код области из номера
телефона для определения пути соединения. IPадреса работают таким же об
разОм. Можно представить IPадрес так:
IPадрес = {адрес сети} + {адрес интерфейса компьютерахоста]
Например, 192.168.2.10 является IPадресом в сети 192.168.2.0, а адресом
интерфейса, который часто называют адресом хоста, будет .10. Другими сло
вами, этот IPадрес указывает на сетевой интерфейс .10 в сети 192.168.2.0. Ка
кая часть IPадреса используется для идентификации сети, зависит от класса
сети. Обратите внимание, что при записи адреса сети, байты, определяющие
интерфейс, записываются нулями.
32битные IPадреса покрывают диапазон от 0.0.0.0 до 255.255.255.255 (232).
Они классифицируются (с некоторыми исключениями) таким образом.
Сети класса А
Любой IPадрес, который находится в диапазоне от 0.0.0.0 до
127.255.255.255 принадлежит IPсети класса А. На рис. 9.3 показан возмож
ный диапазон значений IPадресов в сетях этого класса.
В этом классе адрес сети определяется самым левым байтом IPадреса.
Остальные три байта используются для идентификации сетевого интерфейса
хоста. Поэтому можно представлять себе этот класс как п.х.х.х, где п лежит в
диапазоне от 0 до 127 и х.х.х может быть любым трехбайтовым числом от
0.0.0 до 255.255.255. Другими словами, в каждой сети класса А существует 2й
(16 777 216) IP адресов.
Сеть 0.0.0.0 зарезервирована и используется для указания используемого
по умолчанию маршрута сети; сеть 127.0.0.0 используется для кольцевой про
верки. Каждый компьютер должен использовать 127.0.0.1 как IPадрес коль
цевого интерфейса. Этот адрес используется для тестирования сетевого
программного обеспечения без физического подключения к сети. Например,
Рис. 9.3.
Адреса сетей
класса А
www.books-shop.com
170 I лава У
Сети класса С
Любой IPадрес, который находится в диапазоне от 192.0.0.0 до
223.255.255.255, принадлежит сети класса С. На рис. 9.5 показан возможный
диапазон IPадресов в этом классе.
Рис. 9.5.
Сетевые адреса
класса С
www.books-shop.com
Управление сетями 171
КлассВ
КлассС
www.books-shop.com
172 Глава 9
www.books-shop.com
Управление сетями 173
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
174 Глша 9
www.books-shop.com
Управление сетями . 175
www.books-shop.com
176 Глава 9
www.books-shop.com
Управление сетями 177
Рис. 9.7.
Окно Names утилиты
Network Configurator
www.books-shop.com
178 Глава 9
www.books-shop.com
Управление сетями 179
•О
www.books-shop.com
180 Глава 9
Эти две сети полностью разделены. Компьютеры в любой сети могут пре
красно видеть хосты в той же сети. Пользователь компьютера 192.168.1.1 в
сети А может сделать ping любого из двух других компьютеров, используя
IPадреса их сетевых интерфейсов. Однако он не может получить доступ к ка
комулибо из компьютеровхостов сети В. Почему? Потому что пакеты из
сети А не могут попасть в сеть В. Как же соединить физически две различные
сети? Правильный ответ — используя компьютершлюз или маршрутизатор.
На рис. 9.13 показано, как это можно сделать.
Рис. 9.13.
Две IP$сети,
соединенные
с помощью шлюза
www.books-shop.com
Управление сетями 181
отдела, все операции замедлятся, так как каждый хост должен делить с други
ми полосу пропускания сети. Какое же решение? Подсети (см. рис. 9.15).
www.books-shop.com
182 ' Глава 9
www.books-shop.com
Управление сетями 183
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
184 Глава 9
Листинги 9.5 и 9.6 показывают файлы для двух интерфейсов (ethO и ethl).
Листинг 9.5. Файл /etc/sysconfig/networkscripts/ifcfgethO
DEVICE=ethO
IPADDR=192.168.1.126
NETMASK=255.255.255'.128
NETWORK=192.168.1.0
BROADCASTS 92.168.1.127
ONBOOT=yes
Конфигурирование хост'компьютера
Каждый хосткомпьютер в каждой из подсетей должен быть сконфигури
рован так, чтобы все они знали сетевой адрес, маску локальной подсети и ин
формацию о шлюзе. Например, предполагая, что все хосткомпьютеры
являются рабочими станциями Linux и каждый имеет одно интерфейсное
устройство Ethernet (ethO), файл /etc/sysconfig/network для любого из этих
хосткомпьютеров в сети 192.168.1.0 будет таким, как показан на листинге 9.7.
Листинг 9.7. Файл /etc/sysconfig/network
NETWORKING=yes
FORWARD_IPV4=yes
HOSTNAME=marketing$1.nitec.com
OOMAINNAME=nitec.com
GATEWAY=192.168.1.126
GATEWAYDEV=ethO
www.books-shop.com
Управление сетями 185
IPADDR=192.168.1.1
NETMASK=255.255.255.128
NETWORK=192.168.1.0
BROADCASTS 92.168.1.127
ONBOOT=yes
www.books-shop.com
www.books-shop.com
Часть 4
Организация
работы служб
Интранет/Интернет
www.books-shop.com
www.books-shop.com
Глава 10
Служба DNS
В этой главе:
• Служба имен доменов (DNS)
• Конфигурирование клиента DNS
• Настройка сервера DNS с помощью BIND
• Служба DNS для виртуальных доменов
• Циклическая работа DNS для выравнивания нагрузки
г
лужба имен доменов (DNS — Domain Name Service) является сердцем Ин
тернета. Поэтому сетевому администратору нужно научиться превращать си
стему Red Hat Linux в сервер DNS. Невозможно в одной главе рассказать о
всех особенностях DNS, в этой главе будут рассмотрены только основы рабо
ты службы и практические операции с DNS. Наша цель состоит в том, чтобы
помочь понять, как работает DNS и как реализовать сервер DNS для системы
Red Hat Linux.
www.books-shop.com
190 Глава 10
www.books-shop.com
Служба DNS 191
www.books-shop.com
192 Глава 10
www.books-shop.com
Служба DNS 193
Или это может быть строка, которая начинается с символа «#». Например:
» Это строка комментария в named.conf
Или это может быть многострочный комментарий, который начинается с
«/*» и заканчивается «*/». Например:
/*
Это многострочный комментарий в named.conf
Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRS
ɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕ
Ɉɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com
194 Глава 10
•i
www.books-shop.com
Служба DNS 195
file <имя_пути_доступа>;
};
zone <имя_домена> {
type slave;
masters { ip_addr; [ip_addr; . . . ] > ;
file <имя_пути_доступа>;
>;
zone "." {
type hint;
file <имя_пути_доступа>;
};
Первый оператор zone используется для зоны master (первичной). Напри
мер, если требуется, чтобы сервер имен был официальным сервером имен
для определенного домена, нужно задать зону master. Например:
zone "ad$engine.com" <
type master;
file "ad$engine.db";
>:
Здесь сервер имен сконфигурирован как первичный сервер имен для до
мена adengine.com. Обратите внимание, что параметр file используется для
описания имени файла специальной конфигурации зоны или домена. Если
имя файла определяется относительно рабочего каталога сервера, файл дол
жен находиться внутри этого каталога.
Если указано несколько серверов имен для определенного домена, можно
задать только один в качестве master или официального сервера имен (исполь
зуя параметр «type master»). Остальные серверы имен (столько сколько нуж
но) должны быть указаны как серверы имен типа slave (подчиненный).
Например:
zone "ad$engine.com" {
type slave;
masters < 206.171.50.10; >;
file "ad$engine.db";
>;
Здесь текущий сервер имен был задан как сервер имен slave для домена
adengine.com. Список masters определяет один или несколько IPадресов, с
которыми соединяется slave, чтобы обновить свою копию зоны. Если опреде
лен параметр file, то в этот файл записывается точная копия конфигурации
зоны. Рекомендуется использовать «file», так как это ускоряет запуск сервера.
Можно определить в файле /etc/named.conf столько операторов zone,
сколько требуется. Однако запрещено определять несколько конфигураций
зоны для каждой зоны или домена. Например, запрещено настраивать сервер
имен как master и slave для одной и той же зоны.
Наконец, еще одним обычно используемым оператором является специа
льный оператор zone. Имя домена определено как «.», р тип сервера имен как
«hint» или кэш. Эта специальная зона используется для определения несколь
ких корневых серверов имен. Когда запускается сервер имен, он применяет
список hints, чтобы найти корневой сервер имен и получить самый свежий
список корневых серверов имен.
Теперь посмотрим на специальные конфигурации зоны и домена.
Специальные конфигурации зоны или домена
Для каждого домена или зоны Интернета нужно иметь два конфигураци
онных файла. Один конфигурационный файл нужен для настройки прямой
трансляции DNS (имя_хостав1Р), а другой файл нужен для настройки обрат
ной трансляции DNS (1Рвимя_хоста). Например:
www.books-shop.com
196 Глава 10
zone "ad$engine.com" {
type master;
file "ad$engine.db";
};
zone "50.17l.206.in$addr.arpa" {
type master;
file "db.206.171.50";
};
Два предыдущих оператора zone находятся в файле /etc/named.conf. Эти
операторы zone настраивают сервер имен на режим официального master
(первичный) сервера имен для домена adengine, com. Другими словами, этим
сервером имен обрабатываются все трансляции имя_хостав1Р (также изве
стные как прямые трансляции DNS) для adengine, com. Второй оператор zone
настраивает сервер имен на режим master (первичный) сервера имен сети
206.171.50.0; другими словами, все трансляции 1Рвимя_хоста (также извест
ные как обратные трансляции DNS) для этой сети обрабатываются этим же
сервером имен. Первый оператор zone утверждает, что информация о кон
фигурации для прямой трансляции в домене adengine.com хранит файл
adengine.db, а второй оператор zone указывает, что конфигурация обратной
трансляции DNS для сети 206.171.50.0 хранится в файле с именем
«db.206.171.50».
Оба эти файла состоят из записей ресурсов DNS (RR — resource record) и
необязательных строк комментариев. Запись ресурса DNS имеет следующий
синтаксис:
{name} {ТТЦ addr$class record$type record$specific$data
Поле пате всегда является именем записи домена и должно начинаться в
. первом столбце. Традиционно только первая запись ресурса DNS задает поле
пате. Для всех остальных записей ресурсов в файле зоны, name можно оста
вить пустым; в этом случае запись берет имя предыдущей записи ресурса.
Второе поле, TTL, является необязательным полем «Time to Live» (время
жизни). Оно определяет, как долго информация будут храниться в базе дан
ных. Если оставить это поле пустым, то используемое по умолчанию время су
ществования определено в записи ресурса «Start of Authority» (начало
полномочий или авторства). Третье поле, addr(class, является классом адреса.
Единственным широко используемым классом адреса для адресов Интернета
и другой информации является IN. Четвертое поле, record(type, определяет тип
записи ресурса. Пятое поле, record(specific( data, определяет данные для типа за
писи в четвертом поле. Рассмотрим типичные записи ресурсов.
SOA: Начало ПОЛНОМОЧИЙ Запись SOA или «Начало полномочий» исполь
зуется для указания начала зоны. Синтаксис записи SOA:
@ IN SOA nameserver. contact$email$address (
serial_number ; Serial
refresh_number ; Refresh
retry_number ; Retry
expire_number ; Expire
minimum_number ) ; Minimum
Первым стоит поле name. Оно всегда идентифицируется символом «@», и
это поле не нужно повторять ни в какой другой записи ресурса того же фай
ла. Поле nameserver используется для определения имени хоста текущего сер
вера имен, а поле contact(email(address указывает адреса электронной почты
системного администратора домена. Остальные данные связаны с записью
SOA и Используются для задания серийного номера вместе с различными зна
чениями по умолчанию.
Строка serial_number определяет номер версии этого файла зоны. Хотя в
качестве серийного номера можно использовать любое положительное чис
ло, обычно указываются числа в формате «YYYYMMDDNNN». Здесь YYYY —
www.books-shop.com
Служба DNS 197