Table Of ContentPerl for System
Administration
David N. Blank(cid:1)Edelman
Perl для системного
администрирования
Дэвид Н. Бланк(cid:1)Эдельман
Санкт(cid:6)Петербург
2001
Дэвид Н. Бланк(cid:12)Эдельман
Perl для системного администрирования
Перевод Т.Морозовой
Главный редактор А.Галунов
Зав. редакцией Н.Макарова
Научный редактор В.Коновалов
Редакторы Л. Ага, В. Овчинников
Корректура С.Беляева, С.Журавина
Верстка Н. Гриценко
Дэвид Н. Бланк(cid:29)Эдельман
Perl для системного администрирования.– Пер. с англ.– СПб: Символ(cid:19)Плюс,
2001.– 496 с., ил.
ISBN 5(cid:19)93286(cid:19)024(cid:19)3
Эта книга будет полезна администраторам с различным уровнем опыта– от
обычных пользователей Linux до администраторов крупных систем. Автор рас(cid:19)
сматривает основные платформы, включая Unix, WindowsNT/2000 и MacOS.
При наличии некоторого опыта программирования на Perl вы узнаете, как
при помощи этого языка повысить производительность во многих областях,
включая: управление учетными записями пользователей; наблюдение за
файловой системой и отслеживание процессов; работу с сетевыми службами
имен NIS и DNS; администрирование баз данных при помощи DBI и ODBC; ра(cid:19)
боту со службами каталогов LDAP и ADSI; обработку и анализ файлов журна(cid:19)
лов регистрации; поддержку защищенной сети; наблюдение за удаленными
устройствами средствами SNMP.
Автор– опытный системный администратор, работающий в многоплатфор(cid:19)
менном окружении, что предоставляет вам хорошую возможность поучиться
на чужом опыте. Вы узнаете о возможных ловушках и способах их обойти при
помощи Perl. Включенные в книгу примеры и сценарии можно использовать
для решения рутинных повседневных задач.
ISBN 5(cid:1)93286(cid:1)024(cid:1)3
ISBN 0(cid:1)56592(cid:1)609(cid:1)9 (англ)
© Издательство Символ(cid:19)Плюс, 2001
Authorized translation of the English edition © 2000 O’Reilly & Associates Inc. This
translation is published and sold by permission of O’Reilly & Associates Inc., the own(cid:19)
er of all rights to publish and sell the same.
Все права на данное издание защищены Законодательством РФ, включая право на полное или час(cid:19)
тичное воспроизведение в любой форме. Все товарные знаки или зарегистрированные товарные зна(cid:19)
ки, упоминаемые в настоящем издании, являются собственностью соответствующих фирм.
Издательство«Символ(cid:19)Плюс».193148,Санкт(cid:19)Петербург,ул.Пинегина,4,
тел.(812) 324(cid:19)5353, edit@symbol.ru. Лицензия ЛП N 000054 от 25.12.98.
Подписано в печать 06.09.2001. Формат 70х1001 /16. Бумага офсетная.
Печать офсетная. Объем 31 печ.л. Тираж 3000 экз. Заказ N
Отпечатано с диапозитивов в ФГУП «Печатный Двор» им.А.М.Горького
Министерства РФ по делам печати, телерадиовещания
и средств массовых коммуникаций.
197110, Санкт(cid:19)Петербург, Чкаловский пр., 15.
Оглавление
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9
1. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Системное администрирование – это ремесло. . . . . . . . . . . . . . . . . . .15
Какой помощи ждать от Perl. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Эта книга покажет вам, как. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
Что вам нужно. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19
Поиск и установка модулей. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
Нелегко быть всемогущим. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Ссылки на подробную информацию . . . . . . . . . . . . . . . . . . . . . . . . . . .28
2. Файловые системы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Perl приходит на помощь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29
Различия файловых систем. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .30
Прогулка по файловой системе. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Обход файловой системы при помощи модуля File::Find . . . . . . . .41
Работа с дисковыми квотами. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .52
Получение сведений об использовании файловой системы. . . . . . .60
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . . .62
Источники подробной информации. . . . . . . . . . . . . . . . . . . . . . . . . . . .62
3. Учетные записи пользователей . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
Информация о пользователях в Unix . . . . . . . . . . . . . . . . . . . . . . . . . .64
Информация о пользователях в WindowsNT/2000. . . . . . . . . . . . . .73
Создание системы учетных записей
для работы с пользователями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .119
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .120
4. Действия пользователей. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
Управление процессами в MacOS. . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
Управление процессами в NT/2000. . . . . . . . . . . . . . . . . . . . . . . . . . .125
Управление процессами в Unix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
Отслеживание операций с файлами и сетью . . . . . . . . . . . . . . . . . . .150
6 Оглавление
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .160
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .162
5. Службы имен TCP/IP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
Файлы узлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
NIS, NIS+ и WINS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
Служба доменных имен (DNS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .203
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .203
6. Службы каталогов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
Что такое каталог?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204
Finger: простая служба каталогов . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
Служба каталогов WHOIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
LDAP: сложная служба каталогов. . . . . . . . . . . . . . . . . . . . . . . . . . . .212
ADSI (Интерфейсы служб активных каталогов) . . . . . . . . . . . . . . .241
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .261
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .261
7. Администрирование баз данных SQL . . . . . . . . . . . . . . . . . . . . . .264
Взаимодействие с SQL(cid:19)сервером из Perl. . . . . . . . . . . . . . . . . . . . . . .265
Использование DBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .268
Использование ODBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .274
Документирование сервера . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
Учетные записи баз данных. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
Мониторинг состояния сервера. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .293
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .293
8. Электронная почта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
Отправка почты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
Распространенные ошибки при отправке почты . . . . . . . . . . . . . . .301
Получение почты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .315
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .339
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .339
9. Журналы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
Текстовые журналы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .341
Двоичные журналы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342
Данные с состоянием и без. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348
Проблемы с пространством на диске. . . . . . . . . . . . . . . . . . . . . . . . . .351
Анализ журналов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .359
Оглавление 7
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .388
Рекомендуемая дополнительная информация. . . . . . . . . . . . . . . . .388
10. Безопасность и наблюдение за сетью . . . . . . . . . . . . . . . . . . . . . .389
Обращаем внимание на неожиданные или
несанкционированные изменения. . . . . . . . . . . . . . . . . . . . . . . . . . . .390
Обращайте внимание на подозрительную активность . . . . . . . . . .399
Протокол SNMP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .407
Опасность на проводе. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .417
Предотвращение подозрительных действий. . . . . . . . . . . . . . . . . . .427
Информация о модулях из этой главы . . . . . . . . . . . . . . . . . . . . . . . .432
Рекомендуемая дополнительная литература . . . . . . . . . . . . . . . . . .433
A. Пятиминутное руководство по RCS . . . . . . . . . . . . . . . . . . . . . . . . . .435
B. Десятиминутное руководство по LDAP. . . . . . . . . . . . . . . . . . . . . . .438
C. Восьмиминутное руководство по XML . . . . . . . . . . . . . . . . . . . . . . .444
D. Пятнадцатиминутное руководство по SQL . . . . . . . . . . . . . . . . . . .449
E. Двадцатиминутное руководство по SNMP . . . . . . . . . . . . . . . . . . .462
Алфавитный указатель. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .478
Об авторе
Дэвид Н. Бланк(cid:29)Эдельман– директор по технологиям факультета вы(cid:19)
числительной техники Северо(cid:19)восточного Университета (Northeas(cid:19)
tern University College of Computer Science). Последние 14 лет он рабо(cid:19)
тал системным и сетевым администратором на больших многоплат(cid:19)
форменных системах в Brandies University, в технологической группе
Кэмбриджа (Cambridge Technology Group) и лаборатории MIT. Кроме
того, он является главным техническим редактором журнала «The
Perl Journal» и написал немало статей о музыке разных стран. В сво(cid:19)
бодное время он учится играть на мбире– традиционном музыкальном
инструменте Зимбабве.
Предисловие
Perl– это мощный язык программирования, уходящий корнями в за(cid:19)
дачи традиционного системного администрирования. В течение мно(cid:19)
гих лет он адаптировался и расширялся для работы с новыми операци(cid:19)
онными системами и новыми задачами. До сих пор, однако, не было
ни одной книги, посвященной использованию Perl исключительно для
системного администрирования, тем самым признавая факт глубокой
исторической связи.
Если вы уже немного знакомы с Perl и вам необходимо выполнять за(cid:19)
дачи системного администрирования, то эта книга для вас. Читатели с
различным уровнем опыта как в Perl, так и в системном администри(cid:19)
ровании, найдут в этой книге что(cid:19)то для себя полезное.
Структура книги
Каждая глава этой книги посвящена определенному кругу задач сис(cid:19)
темного администрирования. В конце каждой главы приведен список
используемых в ней модулей и ссылки на более подробную информа(cid:19)
цию по рассмотренной теме. В книгу включены следующие главы:
Глава1 «Введение»
Во введении описан материал, детально рассмотренный далее в кни(cid:19)
ге, рассказано, как он может послужить и что нужно для того, чтобы
получить от него максимальную пользу. В этой книге рассмотрен
серьезный материал и считается, что он будет использован «влия(cid:19)
тельными» пользователями (например, привилегированными поль(cid:19)
зователями в Unix или администраторами Windows NT/2000). Кро(cid:19)
ме того, введение содержит важные советы, помогающие писать бо(cid:19)
лее безопасные программы на Perl.
Глава2 «Файловые системы»
Эта глава о том, как содержать в порядке и правильно использовать
различные многоплатформенные файловые системы. Мы начнем с
рассмотрения принципиальных различий между файловыми систе(cid:19)
мами каждой из операционных систем. Затем мы рассмотрим про(cid:19)
цесс исследования файловой системы средствами Perl и расскажем,
когда это может оказаться полезным. И, наконец, мы узнаем, как
работать с дисковыми квотами из Perl.
10 Предисловие
Глава3 «Учетные записи пользователей»
В этой главе рассказано о том, что собой представляют учетные за(cid:19)
писи на двух различных операционных системах. Основная часть
главы– простейшая система ведения учетных записей, написанная
на Perl. В процессе построения этой системы мы рассмотрим меха(cid:19)
низмы, необходимые для записи учетных записей в простую базу
данных, основанную на XML, а также механизмы для создания
учетных записей и их удаления.
Глава4 «Действия пользователей»
В главе4 рассмотрены различные механизмы управления процес(cid:19)
сами для всех трех операционных систем от самых простых (напри(cid:19)
мер, процессов в MacOS) до более сложных (в WinNT/2000). Мы ор(cid:19)
ганизуем работу этих механизмов с помощью вспомогательных сце(cid:19)
нариев. И, наконец, мы узнаем, как средствами Perl проследить за
операциями с файлами и за сетью.
Глава5 «Службы имен TCP/IP»
Службы имен позволяют узлам в сети TCP/IP общаться друг с дру(cid:19)
гом. В этой главе отражена вся история развития, начиная с файлов
узлов, продолжая сетевой информационной службой (NIS) и закан(cid:19)
чивая связующим звеном в Интернете– доменной службой имен
(DNS). Для каждого шага такого пути мы покажем, как можно уп(cid:19)
ростить профессиональную работу с этими службами при помощи
Perl.
Глава6 «Службы каталогов»
По мере роста сложности рассматриваемой информации растет и
важность служб каталогов, которые мы используем для доступа к
этой информации. Хорошо, если системные администраторы будут
не просто использовать эти службы, но и создавать собственные
инструменты для работы с ними. В этой главе рассказано о некото(cid:19)
рых из наиболее популярных служб, таких как LDAP и ADSI, а
также показано, как с ними работать при помощи Perl.
Глава7 «Администрирование баз данных SQL»
Очень часто в сферу действий системного администратора попадает
и работа с реляционными базами данных. А значит, системные ад(cid:19)
министраторы должны быть знакомы с администрированием баз
данных SQL. В этой главе рассмотрены два механизма для работы с
базами данных– DBI и ODBC, а также приведены примеры их ис(cid:19)
пользования.
Глава8 «Электронная почта»
В этой главе показано, как с помощью Perl лучше использовать
электронную почту в качестве инструмента системного админист(cid:19)
рирования. После обсуждения основ отправки и разбора электрон(cid:19)
ной почты с помощью Perl мы рассмотрим несколько интересных