Text
                    Эвu Немет, Тарт Снайдер
Скотт Сuбасс, Трент Р. Хей н
дnя ,ПРОФЕС,СИОI:IАЛОВ
UNIX
РУКОВОДСТВО
СИСТЕмноrо
АДМИНИСТРАТОРА
. ТРЕТЬЕ 'ИЗДАНИЕ .
(jh\{ ппTEP"
Москва . СанктПетербурr . Нижний Hoвropoд . Воронеж
POCTOBHaДOHY . Екатеринбурr . Самара
Киев. Харьков. МИНСК
2002


Эви Нвмвт, repm Снвйдвр. Скотт Сибвсс. Трвнт Р. Хвйн UNIX: рУКОВОДСТВО системноrо администратора Для профессионалов Литературны" pe.llJ1nop ТеХllическиR редактор Х)'lIО>l:JIИК Е. КурбатD.II о. JanЛUЛl"ина Н. 6IfрЖQ.КОIf ББК 32.973.201 8.2 УДК 681.31 Немет Э., Снайдер r., Сибесс С., Хейн т. Р. Н50 UNIX: руководство системноrо вдминистрвтора Дл лрофессионвлов I Пер. с анrл.  СПб.: Питер; К: ИздвтельсК8 rрулла BHV, 2002.  928 с.: ил. ISBN 966552 1 063 ISBN 5318007546 Третье 11311Вlше уже СТВlшrro )iласси..:оJl бестселлера. 'Эта IClшra  0,11..1111 И1 неМИDПIХ, лред"азlillчеtl IIЫХ не ЛЛI WHpoKoro K1')'r8 ПОJlЬЗОВ8теnсП. D ДЛJl. C.ICТC"'HblX ВДlo4l1ШIСТрПУОроО, рвБОlНlОЩНХ 11 среде UNIX. И:lЛожеНIIЫН МlI.тернал будет полезен К8К лрофессJ.lОНIlЛВ""', TIII\ l' Т'СМ. кто еще тОЛЫ;О IIОСТИraeт ТОНКОСТИ поЯ )'tL!JСIC&теЛЫIOА н TP)'llIIOR работы. Друшын ОIl.8ИИ. перед ЧНТUТСJUl.МII исчсрl1ыDIDшссc РУКОВОllСТ80, 11 котором подробно 011llC811Ы ШОПlе нспоаьзуемые ОПЫТНЫМII ВJlМИllllстраТорllМИ npllCMbl работы с РВЗ- нообраэнымн p)'pcaMII talCTeblIoI UNIX, Как создвть фаПпы 8:0нфиrУРВШIИ. ПОВЫСКТЬ БЫСТ])Оllсi1ствис 11 IllIlIСЖllОСТЬ CI1CTCMIoI, орrВШ-lэоват. работу В короораТИВtlоR сети, иaJ1l1l1НТ" обмен эпСlПpOlIlIОЯ почтой, ПОДIШЮЧНТЬ HOBWC УСТРОЙСТВ8.  oт Веты 118 'ТИ н мноrис дpyrмc 88ЖНlolС ВОПросы читатели наАдут 11 даШlоА КlIHrc. Кроме Toro, 3НВ'IIIтельное ВНИМВНИС удепеllО оБС:1)'ЖII1l8ШIЮ TeXII11'IKHX средств, 11 ТDкже ПрllВНЛnМ роботы 8ДМИIIНС1р8ТОроВ н поль- 30118теJlеА. Кнш-а снаБЖIШ8 боm.wнм ":ОJlичеством npllMcpOB, взятых 113 рсII..'1ыlАR жюшt 11 отtlОСЯщltхся к поп)' .'.рнсЯwим IICPCi!.M UNIX: 501ari., HP-UX. Red НВI Linux и FreeBSD.  P,entlce Hall PТR 2001 = Издательская rpynne BHV, Киев, 2002 = ЗАО И3Д8теnьски ДОМ .ЛитеР)j, 2002 n.... I0I.l 3A8I<И8 nOI1)""8liW ПО соrп.ш.IOIЮ с РnlnUl:e H.II PTR 8и ПР." "ЩI!Щ.. НИIЦIIЦIJI "IIIС'Т" Р....Оi'\III<ИI'\'I ... "011(.' б..,т- 80С/1роИИ8А81!8 8 КlKOi\ e 1D "1'1 riло форм. Ota nl4Cb1lol8нworo 1).:IIР8Ш8" .ладеП.I.I8. .-тором,,", np.l. И"фоРМ-ЦI411. CO,EI8jVК8ЩIII01'l . ДIIM"'oill llИиr.. ПОП)""8на  ИСТCIЧ"КCI' IWIОQМ8ТРИII.8МJ: JIIUI'."1oC18aM ICIoМ IICW.. Т.м .... М.101" ИМ8". 1"дУ 8ОаhtаЖНlol. "'''О,.ЧIICIiIoll ИЛ"' Т.J:НИ"'8CIШt OWI40",. I'IIДIТIЛТIIO м. MO)l(8T rIp8"Tl!pa"TII lOool\IOТМ)'IO TO«I'IClCT. JIII1OJ"IОТУ npl'l8QAI'I"'IIIM a88l1,8HJlliII и н. "ес8т O''''C'I.Н'"OC'Т'Io'' .a3MaIllH. DШи6кI'l. CllJl3IH"III. С исnОПwО.."и.... lDIиrи. ISBN 866-552-106-3 ISBN 5-316-00754-6 ISBN 0-13-020601-6 (енrл-) ОООI(ПИтерПр,,, 196105, Camcт.Петербурr,УJI. Б.'lroдаТИ.JI,.D. 67.. ЛкцсюlU ИдNl 0,7&4 ar 07.09.01. ооо.ицаТOJlЬClWl' 11Jymu. ВНV» CaIшcтc:uocnоо JlНIIC8НИМ. rОС)'AlpcncнНWЙ pooqтp Depи.DJ(" 175 от 13.09.2000. HaпoroJaJl i1W"DТI  оl5щеросснАCltиА lUIасаlфlUl&ТОр I1pQltYkUНИ ок 00,.9), том 1: 9S300S  .1ИТeplТ)'1>l учебнап. ПО.АПНС8110. печат" 18.09.02. Форdт70)(1ОО'16. Усп п.л. 1",82. Дол. тмраж)ООО ЭIC]. ЗIi.IC&З .-'1302. Oтnl'llnНОСфотофоРМ IФ[),П ItПеч.1"ИW POpt ИМ. А. М. rOp.kOro МмннстсрстА РФ подс.18М лClЧlТМ, тслеplAНО8еШ8.НН' HCpeдCТJ МlCCOIW:\ ICONW)'юtICIWlJ:l. l!i11110.Санп-nетсрбурr, Чх.лОIСICиЯ.пр., 1,. 
Мы посвяшаем это издание ламlI1'Н трех rиrантов мира UNIX и Internet: ДЖону Л8Йонзу, ДЖону ПОCТeJlу И Ричу Стивензу. ДЖон ЛаАонз (John Lions), лрофессор университета штата Новый Южный Уэльс (Австралия). написал замечательные комментарни К исходным текстам UNIX в середиие 70x rr. Он объяснил назначение примерно 10000 строк кода, из которых в то время состояла операuионная система. Кни.ra Джона испольэовалвсь на учебных курсах ло UNIX во всем мире. Проб",емы с авторскими правами привели к тому, что кииra перестала и.цаваться. но еше в течение мноrnх лет онв циркулировала в студенческой среде в виде ксерокопий с ксерокопий. Те. которые дошли до нас. с трупом можно лрочестъ. Джон умер в пекабре 1998 r. ,., ДЖОН Поcтe.n (John Postel) бblJl реll8КТОром серии RFCnoкyмeHToB (и автором мноrих документов), великодушным диктатором сети Intemet и ее технической совестью. MHorO лет он был поводырем. который вел сообшество lntemet на пути от иrpовой плошадкн АЛЯ университетских умннков до основной социальной и экономической движушей силы эпохи компьютерной революuии. Джон умер Н октябре 1998 r. (www.p05tel.org) ,., Рнч Сmвенз (Rich Stevens) широко извеcreн о акапемических Kpyrax блаrо.даря своим чудесным книrам по сетям и проrpаммиронанию в UNIX. Студенты любили эти книnl. поскольку Рич приводил при меры, в которых максиМально наrлЯ1lНО пояснялись те ИЛИ иные конuеПЦИИ и особенности сетевых протоколов. Щедрый вклад Рича в сообшество Iпtеrлеt ЗЗКJJючanСА в ответах на мноrочисленные вопросы по ТСР, часто поя.влЯ8шнеся в телеконференциях. Трудно пpe.nстввить себе более доступный и авторитетный источник информаuии Второй том книrи Рича TCP/IP /l/us/ra/ed считается неформальноА покумеНТ8llИей ло ТСР. Рич умер в сентябре 1999 r. (www.koha1a.com) 5 
Предисловие Мне приятно поздравить сообшеСТ8Q Linux с появлением книrи "UNIX: руководство сиcrемноrо администратора". В предыдушем ИЗдании КНlпt оIlисыалосьb шесть вариантов UNIX. все из которых были KOMMCP'ICCKi-I'l.tlt. Следуя современным тенденuинМ. нынешнее издание охватывает Dcero четыре снетеМЫ. причем две И3 них (полоnина!)  бесплатtlые. Столь сушественны(' изменения произошли Bcero за пять лет. Такие системы. как Linux и FreeBSD. доказали жизнеспособность моде.'Нt oткpblToro распространения ПО с исходными текстами. Они являются таКИМI'1 же стабильными и полнОФункuионалЬНЪJМИ, как и их коммерческие aH3JlorH Но преимущества мкрытых систем заключается 8 ТОМ, что сообшеСТ80 рвзработч.иков в сжатые сроки устраняет выявляемые ошнбки и добав..Т'lяет поддержку популярных техиолоrий. Сколько традИliИОННЫХ постаишиков MOryт похпистаться эти.,(! Как с.:,едует ИЗ ю....IП1. системное адМИНl1стрирование не Bcerдa хорошо вписывалось в традИliИОННУЮ модель разрабarки Поставшики делают ТО, ЧТО им заблаroраССУllИТСЯ (по ПРИLJинам. далеко не 8cerna очевидным). и anминистраторы вынуждены принимать удар на себя. Сложность их работы состоит и том, что проrpзммное обеспеl.Jение поставляется в виде бо.'1ЬШИХ интеrpированных систем. Затронешь один компонент  ..полетят" дрyrие. СИ1)'иция улучшается по мере Toro, как мы учимся строить полноФунк- ЦИОНaJтьные системы из множества отдельных компонентов. Действительно. почему бы anМИНllстрЗТОрУ не выбирать, к примеру, систему аyrентификзuии так же. как секретарша выб(lрает наиболее удобны ДЛЯ себя текстовый редзJo..'ТОР'! OllblT показывает что возможность выбора ведет к победе ХОрОllШХ nporpaMM над плохими. Просматривая новое издание КJ-Iиrи. я убежпаюсь, что существуют способы сделать администрирование UNIХсистем удобным, леrким и понятным. Первые ПрИЗН8юt э.rоrо появились 8 прошедшем десятилетии. В ближайшие ro...l1bI нас наверняка ОЖlшает ПРОРЫ8 R данной области. А лока наслаждзйтесь книrой. Нет предела совершенству Линус ТорвалtoiJс ИЮНЬ 2000 r. 6 
Предисловие ко второму изданию Б послеДliее вре\-IЯ ПОЯВИЛОСЬ \iНожеСТ80 юшr, по":вЯШt'ННЫХ СИСТffl,ШОМУ ад\НtНИС1рИрОRaНJ1Ю. Но эта, на наш взrJlЯЛ, HleeT два с}шеСlвеllВЫХ nрСllмушества. Боnервых. это хорошая кюи-а. Ее авторы 8 сноеи lIовседнеВI-IO1 деятеJ1ЬНDСП1 J3liИМЗIОТСЯ решеllНС1 реа.1ЬНЫ>' адНtlll1страТИВliЫХ ЫД"Ч н реальных систе1ах, с которыми работают ТЬ!СЯ'Ш 1I0;lыовате:IСП 11 rпе осущеСТlLlяеrся orpOMHoe I':О.lичесТlIO сетевых соединеНII11 Авторы HJtl.LIII заННМ3ТЬСJl JПIМ 04eflb давно и до сих пор поМНЯТ, 'ITO Тз"-ее 3Jl,,)1I rep ljllibo и в 'ICM Jаключалась проблема DZll (не IlоддеРЖJlИJ...1НСЬ преРЫВ.i:JНI-tiil. 01111 ЖI-IВyr И работают в мире, в КОТОрОМ сушестнуют песяткн ОIIраШIOНIIЫ" систем, созданных разными ПРОIl3ВОдlпелям.и. и \нюжеСТ80 uерСИll кс.1ЖДО1 систе",ы. Это  не I1риятвое подарОЧIf ИЗДЗllиf:. преднаJН3 1 .Н:Нlюе д-ля aKKypi1THOIO. Чl.1стоrо tИра. Это  "lюке.lая ....IH1ra нarН1санная для СУРОВOI.О мира. Бовторых, 31"0 исчерпыоаюшая книrН. К настояшему ВрС\lени выпушено MHoro ХОрОШllХ I1ЗД3НИЙ. ПОС8яшеJ-lНЫХ раЗ.rIII'IНЫ\.1 aCrle....-т3м работы с lJNIX. (наПрИ!l.tср, на\.1 11звестно uмечательное 1I0собие по системе JЛекrрОННOIi по'пы sendmail). 1-10 t:ушествует oLlellb 1a.IO книr, раСС!l.ШТрIIВJ.IОШИХ проб;]е\.I систе\Аноrо ап.ННШСтрllроваНI1Jl в ue.lo""'1 и СТОЯШII\ сотен срублеНIЫХ раДII них деревьеА. РУКОI1ИСЬ ПСрLюrо ИJшtЮ1Я .поЙ Кllипt I1МС18 Ba18aНl1e "УС.;IOЖНСНIIOС CllCTeMHDe администрироваНllе в LINLX". н 10 СООт8f'ТСТRОПЗ.10 деиствше.'1ЫIDСПI: в KHI-1("LIX ПlПа ..упрошеНное..... УПУСКз"'10\:.Ь всеrпа так \1I-Ioro дета.llсt1, ЧТО, вопреки названию. это fОЛЬКО УС. Т 1ОЖШI.l0 работу. Факт остается фа...."ТоМ. Сl1сте;о.нще аД\IНt'НlСТРIIРОВ3J.ше  ClО:Ж:UОН задача. LINIXCHCTe\'lbI ИСК'1Юlительно \tошны, а подобное !lОСтОИНСТВО всеrдз сопроно;.КДается. поиышением степени С.10ЖНОСТI1. CtCTeMbI на базе персо Ha.rlbtlbIX компьютеров тоже буд},т УС.ilОЖНЯТЬСЯ. коrда ВЫ "Чllете подк.1ЮЧi'lТЬ их К ССТЯ!l.-I. мопе.М3!1.t. принтсраt и внеШНlI1 ДИСКОВЫI наКОП1НеJlя.1 11 ПОИ\lсте, что нужно ззБОТИТЬСJ! О та....lIх вопросах, кзк резервное ....ОlшроН.шие 11 безопС1СНОСТЬ, И вот lIаС1)'ПИТ !l.ЮМСIIТ, КОrда происсс }'праВ.IСIIШI nt:pco Ha.'lbHbIM КОМПЬЮlерО!l.1 CTaliCT здорово смахивать 11C1 clд\IItIНIlрироиаllllе L;NIXcl1CTetbI: "Это OlleHb просто ШСJlкаешь TJMTO. IIOТОМ ИЫКIЮ1lаешь принтер. ШLаче lIе будет доступа к сети (Быбllраешь тут. ОlКрbJuаешь :но меню, щеЛКdешь на КllorlKa\: DiabIe и ApplYI. ЗЗТС\-I открываешь С.7Iедуюшее меню. выбираешь лот пункт. -.шесь DМОДИШЬ Н\lЯ своеЙ МctШИl-lЫ. ПОТОI ше'1каешь Bor ryт, ту'- и БЫПОЛЮlешь Д80ЙНОМ щеlЧОК тут (заКРОJ1 ::)'[0 диа.Т]оrовое окно. оно Бсеrда появляется, не .шаю, поче\tу...). потом пере'\о дишь сюда. ныбllраешь :зто меню. аКПIВll1ируешь CCTeBYIO подсистеfУ, переходншь в :пот кта.пOl. J3IIУСК3СШЬ ПРllложеннС' TCP/I р, зaH'1  ОИ ЗаБЫЛlI установить сетевуlO "":lCKY. Нщ,з...."х проБЛС\t. просто 113...1l0 нернпь,,:я tJNIX  ПО 13Jk'IИ("Трllро8.iН13Я I"OpI06.1J1 "1.I}1K..1 KOMIl.lНllll Opl.'ll (JIЩIР К СН)А I прУПI\ стр;II.ЫХ. 7 
в третье меню и изменить часку  черт, а ceTЬTO отк.'1ючилась, придется все исправлять (щелкаем. переходим, шелкаем...). Отлично. теперь опять залускае" лриложение TCP/I Р (шелкаем), и можно вызывать lelnel! Видишь. как все просто!" В UNIХсистемахt в отличие от пеРСОН8.1ЬНЫХ компьютеров, сетевые средства входят в стандартную поставку ОС. Они настраиваются один раз, 1-1 большинство пользователеЙ не видят, как выполняется конфиrypИрОВ8ние. К сожалению. системные адМИНИСТраторы не относятСЯ к .fбольшинству пользователей", поэтому им приходится ПРОделывать эт)' неблаrодарную работу от наЧ8J1а и до конца. у авторов есть TaIOКC Ч1'о npе.nложить вам для тех редких спокойных минyr, коrда )' вас ПОЯ8J1яется всзможность поразмыwлять о том, как 06леrчить себе жизнь и ),лучшить конфиryрauию системы. Эта книrа, например. поможет вам настроить систему так. чтобы она раБОТW18 с маКСИМ8J1ьноА производительностью. позволит сократить до минимума за держки и Haвcer.na избавиться ОТ некоторых проблем. Вы получите советы относительно roro. как отличить хороших пользователей от ЗЛОУМЫШ'1енников. Koerne еше используются изолированные UNIХсистемы. ф)'НКllиони рую.шие без сетей, принтеров. модемов и даже внешних дисководов. Если ВЫ Ol1ИН из приверженuев таких IoAзшин ИЛИ считаете, ЧТО rpaфическиЯ' интерфейс вас полностью устраивает (и не хотите узнать, что происходит З8 ero кулисами), эта книrа вам, наверное, не нужна. Здесь в деталях рассматриваются такие мудреные веши. которые вам просто никоrда не понадобится. Однако подобные пользователи встрачаются достатоЧНО реДКО и, HaдeeM ся, постепенно исчсзн}'т совсем. Наша книrа предназначена для всс). остальных пользователей. Эрик Оllлмаll Маршалл Керк Маккузик ABJ)'CT 1994 r. 8 
Предисловие к первому изданию Вопрос)' администрирования UNIХсистсм всеrда уделяли недостаточно ВНН!\.i8НИЯ. На моЙ взrJ1Яд, такое отношение обусловлено рядом причин, связанных с различными аспектам н необычноЯ' истории UNLX. Вопервых. система СО3давалась и развнвалась среди ее ревностных ПоКЛОННИКОВ, которые скоро изучили все ее особенности и нюансы. Этих людей часто раздража.:rIИ порядки, установленные в больших компьютерных иснтрах. которые в 10x rодах были основными поставшиками вычис.'1итеЛЬ НЫХ ресурсов. поэтому они изобрета.:rIИ собственные  кол.п.овСЮН  ад!\.tи нистративные реиепты , иrнорируя популярные справочные руководства. Boвтopыx. типичная UNIХсистема занимает в компьютерном "1ире несколько обособленную нишу. Чаше Bcero такая систеа препстаВ.'1яет собой .'tибо машину CpeJ1HerO К.-18сса. обслуживающую опин отдел фирмы ИJ1И факультет университета, либо рабочую СТаНUИЮ, используемую одним чеJlО веком. но соединенную через сеть со мноrими 'nр}ТИМИ систе\1ами. Большей частью (сейчас появились исключения) uNIхсистемы  это ни I\lэйнфрей мы с профессиональным штатным пеРСОН8J10М. прошедшим полrотовку у производителя или в большом компьютерном иентре, ни пеРСОН3.1ьные компьютеры, принаД..'lежашие отдельным ПОЛЬЗ0вате-'1ЯМ. Большую машину, как правило, обслуживают профеССИОН8ЛЫ. Для персональных компьютеров производитель пишет руководство ПОЛЬЗ0ватс:..'IЯ с перечнем советов, предназначенных для оrраниченноrо Kpyra прИl0жеНIIЙ. Покупателн же машин среднеrо класса неожиданно DJ1Я саМI1Х сеБSI сталкн ваются с необходимостью выполнеНl1Я обязаннOt.'Тей обслуживаюшеrо персо нала. И стаНОВИтСЯ ПОЧТl1 так же одиноко, как еС..1И бы они кут-IЛII персональный компьютер, но при ЭТОМ им прИХОДИТСЯ следить за !l.mожеСТ801\.1 пользователеn, иметь дело с одной И.1И неСкоЛЬКИМИ сеТЯ'1И и решать друrие ужасные rоловоЛОКИ. Наконеи, UNIХсистемы поступают к нам из разных источников. Нес!l.fOТрЯ На наличие в стандартном комплекте поставI01 РЯ.ilа полезны). административных yrи.тшт, не все поставшики систем в достаточной степени обеспечивают их техНичес....'УЮ ПОДllержку. Кроме Toro , мноrие орrанизаuии получают значите.1ьные объемы проrрамноrо обеспечен:ия 1'13 университетов, сети Usепеt и ДРУПfх источников, не предусматривающих вообще никакой поддержки. Несмотря на все эти проблемы. мноrие поставll.ШКИ UNIХсистем всетаки рассказывают своим клиеmам о ТОМ, как раБОТаТЬ с их продуктами. Тем не менее, исчерпывающая книrа по ад\iинистрированию определенно неоБХOllима. Представление производителя о том, что Ba\i нужно, не вcerna совпадает с ВВШи!l.{И желаниями, а докуменТ8UИЯ часто находится 8 разных местах. К тому же ваш ПОСТавщик может быть более 11l..1антлив в производстве аппаратуры, нежели в составлении руководств по ее использованию. И вы. возож-но, будете работать с популярными проrраммами. которые не входят в КО!l.шлект поставки. Поэтому данная книrв вам наверняка приrодится. ДеНlfис Ритчи Октябрь 1988 r. 9 
Введение Коша ь сере..'lине 80\: rr. \.lbI IОТОIЗИlН псрпое II1ДOllll1С ЮН-Н 11, II3f1..i не TepnC:lOCb сраЯНIПЬ нашу рукопись с п.руrи!l.Ш KJ-шra\НI, ПОСНJ1ще,IIIЫМIt адМl1lнн,,:трнрованию LINIХсисте", К C80ety УДОВО_lhСТН1Ю. МЫ СМОIЛII наЙТII ТОЛЪКО трн поп.обны\ издания СсrОдliЯ сушеСТ8ует !l.iИI-Jt1МУМ пятьдесят I\Ю1f на эту тему. ВОТ u че1 ОТЛliЧПельные oc06cHtloCn1 trашеrо издания. Книrа яв.IЯеТСJl практичеСКИ"1 РУКОВОДL,IЮМ. ue.lb КОТОрOl"О  tl{" песказынать содержанне ДОкy?l.-lентаuии. а попелиться с вам 11 наШl1 м КDллеКТИВНЫ1\.1 ОПblТОМ сиетемноrо аДМИI-IIIСТРI1РОН3НI1Я. Она соперЖ1П множество праJ<..iИLlеских ПрllмерО8 и совеТОВ. В книre подробно И.1Л8r3юrся НОПрОСМ. СRflзанныс с работоl1 LIt\IXCICTC\1 в СТЯХ. ЗТО самыА трVПIIЫR аспект ап.МИНI1СТРI1РОШН.IИJI в UNIX, It И\fСННО здесь наш;, ПОМОШL. скорее Dcero. окажется lСIЯ lIас нзиБО.lее ПО.IС1110Й l\-1aтcp'1a.1 КНИПI не подается R }прошеIIНО1 ВИД НаШ1 прltмсры. в БО.1ЬШИl'lстве СЛУ'lав взятые ИЗ праКТI1К1-i JКСП'lУi!таШI11 систем IlрО'IЫШ леlноrо уровня,  pe8.JlbHbIe жизненные СИТ)'3UIIII со BceНI ИХ ПОДВОk ныtи камнями 1-1 нюансами. Внимание Читате.1Я акuентируется НЗ ИСПО.lbJОDЗНIIIf ш[струмента.1ЬНЫХ проrрзммных средств. Каждая УПОЧSlliУI.ая в кнш.с npOrpaM\t3 IlреДl-'В .'lЯеТ собой либо стандартное средство UNIX, :ш60 \.южет БЫIЬ заrружеtl из Il1:terl1L. В некоторых СЛУЧJЯХ nporpaMM3 О.lнuспtя к обеllМ ){II\I катrорИЯМ. 110TOM\. ЧТО мноrш flОСПIRШИКl1 L:NIXcHCTeM не }ТРУЖД:lЮТ себя н Ile СlеДЯI J3 ПОЯ[L1Сtlнеr-.'1 IIO(ih(:\ ncpcl111 прод}кroА. В КlI11rc рассмотрены все О(;llошые иерСIВ1 LINI\ Четыре примера операционных систем СУUlсетвуют две ОСНОВНЫе РilJНОВИДJ-lОСП1 UNlл: ОДНа 111 HII}.. (opI1rHHa..lb ная. IlJнестная ПОД оБШИ!\.1 наJВЗШlе System \.') раJработаli КОМШНlI1СИ лТ&Т, а вторая (бо.lее свежая)  в Ка..тIИфОРliиr,ском Уlши('рситете в ,'ороде БеР"-Лt 01lвестнз ка.- BSD). Ни АТ&Т, ни Ка.JН1фОрШ1ЙСКIIИ Y1l118epCIIТC"1 ЖС tlC работют "13 рынке UNIX. 110 теРМIIНЫ "ЛТ&Т LINIX" 11 .'Be-rkeley lJNIX.. ПО I-1СТОр1'1е-КIIМ Ilрl1Чl1Нп.м coxpalllflllCb. В этои ....НиР: раССlаТрИ8а1ОТСЯ leTbJpe Оllераrнюнные CIICTC\lhl Sоlапs 2. 7 HPUX 11.00: Red HaI LiПU), 62:: FrecBSD !-.4 (1-1 частично 4 О). 10 
Мы выбрали ЭТИ системы ПОТОМУ, что они наибол поnyлярны и, кроме TOro, позволяюТ показать весь спектр попходов к вопросу администрирования UNIXсистем. Первые ДБе системы проИЗОШЛИ от АТ&Т UNIX, FreeBSD является лрямым потомком Berkeley UNIX, а Red Hal LiЛLlХ лредставляет собой некую смесь. При рассмотрен ни каждой темы мы даем подробную инфораuню об этих системах. Комментарии. относяшиеся к тои ИЛИ иной операиионной системе. отмечены в книre эмблемой ПроИЗВОДИТeJ1Я. Сушествует MHOro друrих версий ОС UNIX. БО.%ШIfНСТВО из нИХ является какимлибо вариантоМ одной И3 вышеупомянутых систем. 11 .leKoтopble (налример, AIX и SCO) отлнчаются от остальНЫХ в такой степени, что требуют спеuифическоro подхода к их рассмотрению. Структура книrи Книrа включает Б себя три большие I..!8СТИ: . '.Основы 8Д\iинистрирования", . .. Работа в сетях". . "Разное". В первом разделе лрИБОДИТСЯ ООшlIЙ обзор ОС UNIX, сле.lа""ЫЙ с точки зрения системноrо администратора. В rпaвax 3Toro раздела описаны rn..HOBHbIe факты и методы, которые необходимо lHaTh для управления автономной UNIХсистемой. В разделе '.UNIX в сетях" рассмотрены протоколы, ИСПО.lь]уе1ые в UNIХсистемахl а также способы построения. расширения и сопроnoжn.ения сетеЙ. Кроме Toro, описывается ВЫСОКОУР08невое сетевое проrраМ\tliое обеспеl..lение. Среди перечня тем можно БыдеЛlПЪ систему ДО"'lенных имен (DNS), сетевую файловую систему (NFS), метолЫ маршрутизации. систему электронной лочты sendmail и др. Раздел "Разное" содержит массу вспомоrате.1lЬНОЙ информзuии. Здесь рассматриваются дополнительные проrpамуные пакеты. 8 l..!3стности система печати в UNIX (правильнее сказать, системы печати). В rJlaBaX этоrо раздела дaHы рекомендации по оБСJlуживанию аппаратных среДСТ8, прИНLНшам орrанизации UNIХсистем и Т.д. ИнформаJия ,ц.ля контактов в этом издании кннrи мы бы хотели поБJlаrо-дзрнь Адама Боп-са (лdаП1 Boggs). Роба Брауна (Rob Вrоwл), Неда Макклейна (Ned МсClаiЛJ. Линлу Мак",нли (Lупdа МсGiп1еу) и Тодда Миллера (Todd Mille.r). которые Вliесли своЙ авторский вк..l8Д 8 ее СОJдание. Мы обраЩaJlИСЬ к III-!M, ПО.1ЬЗУЯСЬ и). знаниями в самых раЗНblХ областях. Полученная от них ИНфОр\.13LlИЯ ЗНаl..lИl"ельНО обоrатила нашу книry и наш коллективный ОПЬП, которым MbI делимся с нами. ЗамечаниЯ. преД.'lожения, комментариИ и сообшения об ошибках. оБНil рУА<енных в это книrе. присылате ло адресу: sabookadmn .com 11 
Мы отвечаем на всю корреспонденuию. ио, пожалуйста, будьте терпели вы: иноrда возможность заняться пОЧТОЙ появляется не сразу. Чтобы получить список обнаруженных на данный момент опечаток, а также ДРУI)'Ю свежую инфорМauию по данной книrе, обрашайтесь ло адресу: www.adrn1n . сот Нsдеемся, что книra вам понравится, и желаем удачи в системном администрировании. З_и Немет Fapm Снайдер Скотт Сибасс Трент Р. Хейн Июнь 2000 r: Обозначения и лоroтипы, встречаюшиеся в КНИfe , яВЛЯЮТСЯ собственностью соответствую ших в.IIВделъцев и используются с их разрешения. В частности: Red На! и Red На, SНADOW MAN  это зареrистрировонные тoproBbIe марки КО'Алании Red Но., Iлс. Авторские лрава нв иэоБРOJКeние демона BSD (С 1988) лрИНaдJ1ежот МаРШ8il.1У Керку Мnккyэику (Мапhо11 Кirk McKusick). Дополнительную информаuию о демоне можно получить ло адресу h!.p://www.mckusick.comfbeBs.ie. Полное название операuионной системы, которую мы называем "SoI8ris". звучит так: "[he Solaris Ореra!iлg Епvlrолmеп,". Приносим извинение ребятам И3 Sun. 12 
Блаrодарноcrи с момента выхода в свет nepBoro и BToporo изданий ЭТОЙ книrи сотни читвтелей ПРИ<:JI8.1И нам сообшения об обнаруженных ими ошибквх, KO" ментарии и критические замечания. Мы хотели бы поблаrодарить всех. У Koro нашлОСЬ время написать нам, и надеемся. ЧТО учли все замечания. Системное администрирование в UNIX эв ПОCllедние одиннадllать .1ОТ УCJIОЖНИJlОСЬ, поэтому технический уровень этой кииrи существенно возрос. Научные редакторы, раБОтавшие над раз..1ИЧНЫ"И разлелами книrи, помоrlИ нам во мноrих acnek.IBX: от уточнения исторических и технических подроб ностей до редактирования неудачноrо юмора. ЭТИ .1Ю.iI.И зас.Т'lУЖИu.aют отдельноrо упоминания: Эрик ОЛЛМ8Н СТИВ rэд (Eric Allman) (Slev. Ga.de) Пит Барб.р Эндрю rОllЛан (Pet. В.шr) (Алdr.w Gоll.л) Дэйв Б.рр Боб rр.й фаv. В.,,) (ВОЬ Gray) Джефф Моу (J.IT Мое) Х.рб Моррилъ (Н.", Mom.le) Ласло Немет (Laszlo N.melh) ДэИв Клементс Aнnpeac r уставссон Т оби Утикер (Dav. СI.mелlS) (A"d..... Оustaf5lOЛ) (ТОЬ; O..iker) ДэвИд Конрад Джсфф Холлрин Рэй Пльэак (D.vid СОЛЛid) (Gcoff Наlрпл) (R.y Plzak) Дрю Экхарш ДЭНИСЛ Каррснберr Эшrn Рудофф ф...w Есkh.пЩ (D.лiсl Кarr.nberg) (Алdу Rudom РЭIШИ Эле Крикет Л иу r р:эr Шапиро (R.ndy EI..) (Crick.l Liu) (0"'8 Sh.piro) Бим ФСIЛlСр Билл Маннинr Дэние..'l Салли (ВilI F.лп.r) (ВilI Маплin8) фалl.1 Sully) ПеlТИ Феннер ЛИНда Макrиили ПО.IJ. ВИ КСИ (P.ggy F.лл.r) (Lулdа McOinJ.y) (Раиl Vixic) Дж.фф Фор"с Хол Миллер (Jcff Fory.) (Н.I MilI.r) Мы выражаем особую признвтельность Бврб Дийкер (BBrb DUker) э. ее усилия по реllензироввнию книrи, в твкже Пвт Пврсеrян (Ра! Parseghian). которая проделалв такую же работу во втором издании книrи и продолжила оказывать нам моральную поддержll..)' в этом издании. Мэри ФраНll (Мв!)' FrBntz). редактор настояшеrо издания, ЗВCllуживвет не тОЛЬКО блаrодарности. но и нsrpалы за успешное обуздание темперамент ных авторов. Мэри была бесконечно терпелива к нам. даже коrД8 мы этоrо не заС..lуживали, и сделала все возможное. чтобы заставить нас сконuентри роваться на повышении качества книrи. 13 
Блаrодарим TitК'JКe реД3J.i.iора пеРПОJ.О издания, ДжонCI Уэйта (John \Vait). Большое спасибо Тайлеру Кертину (Туlеr Сшtаil1), KOTOPbIii заНИМ<L1С>l дизайном nepBOI"O и 8Toporo изданий ЮНlПI и остался с HaMII n качестuе штатноrо кар1кзryриста. Мэри Лу Нор (Mary Lou Nollr) проделала оrpОМI1УЮ рабоry 110 офор,, лен ию настоящеrо издания. Мы высоко цеНИ""1 се усилltя. ДЭl1НИ Савард (DаI1ЛУ Savard) из He\\'lettPackard и Знди Рудофф из Suл Microsystems заслуживают блаrодариости за то, что убедили свои орrзниззшllt предоставить нач 060рудонаНJtе. Наконец, мы искренне признательны сотрудиикам фаКУ:lьтета ПЫЧltС.'1It тельной техники университета штата Колорадо, которые na.ilН нам ВОlМОЖ иость воспользоваться СВОИМI ВЫЧИСJlительными ресурсами и помоrНI проверитъ множество примеров. 
Об авторах Эви f/e.4fem работает npeno.aaBaTCJleM на ФаКУ.lьтсте ВЫЧIlс.1НТf:J1ЬНО" техники университета штата КолорitДО и внеШТilТНbJ\.j COТPYдlHIKOM СА} ОА (Cooperative Association for Intcrnet DHt8 Al1alysis) н иентре суперКQМПЫQтерО8 в СанДиеrо. Она собирается покинуrь мир UNIX и отправиться в круrосиетное пyrешеСТ8ие на яхте. evi@cs.colorado.edu Тарт С"айдер работал 8 компаниях NeXT и Suп Jt имеет степень баК8Шl.8ра '3..1ектротехникИ в колледЖе Суортмор (S\Ло'аr1111110rе). штат ПеНСН..lьваНllfI. В настоящее время ОН является аспнраНТО\1 D университете Рочестсрct (Rochester), штат НьюЙорк. qarth@cs.colorado.edu Скотт Сибасс  спеuшulИСТ по UNIX. который работа, во \нюпtх компаниях. вкmoчаSI Inter.active SУЯСI11S и Xinu. В настоя шее время он Я8.1Яется reнеральным исполнительнЫМ директором КШl,Ш3НI1И Xillet, занимающейся разработкой проrpаммноrо обеспечения д.1Я систем допечатной подrотовки Скотт имеет степень бакanанра компьютерных наук н статиспtКII в универ ситете Беркли. штат Калифорния. scot.t@y.net .com Треllт Р. Xeilll является PY,,-ОИОДlпеле\.! теХНliческоrо отдела компаниИ XOR Inc.. р.азрабатываюшсй полнофун,,-uиональные решеlНIЯ н об.lс1СТII з.пектронной коммерuии. Т рент получил наrpаду Liretiтe Achle\'el1lent A\....ard ОТ аССОШ1аUИИ USENIX за разработки, сделанные 11М в vни"ерСilтете Беркли. Он Иjеет высшую степень технической сеРТИфl1кащН1 Cisco. trent@xo[".com 15 
Часть I ОСНОВЫ администрирования 
7 с чеrо начать Мы задались целью HaтrncaTЬ книry. которая была бы на.,чеЖI-IЫМ ПоМОШНИКОМ системноrо aRминистратора и служила бы ИсТОI.JНIfКQМ практи 'IесКИХ советов и полезных сведений по теОрИII системноrо аДМIIНИ":'ТрIlРО".а HIHI, недь их далеко не всеrла МОЖНО найти на страНИIIJХ IIIпераJ:ПШlfоrо руководства. Таким образом. наша КНШ"З дополняет, но IН' 8 кое\-! CI)'LI;lf Ie заменяет ,nокумеитаlЛiЮ, ПОСТ3R.JlЯемую с Вlшсf1 СIIСТСМОЙ. Эта КlШr3 поможет читатеЛЮ. . узнать о различных компонентах СИСТМ aIlМIfНIIСlрНрОRЗlIIlЯ 11 ПОНЯТЬ прИНUJ.fПЫ JIX совместной работы: познакомиться с обшими методаМ1-1 администрирования, tl.oтopMe "еоб ХОДИМЫ при практическоЙ работе; научиться внедрять T3JGle решеl-rnЯ, которые н дальнейшем не ПОМСIU:.UOТ расширпть и УСПОЖИ-ЯTh структуру системы, . иаучиться отделять хороши идеИ от плохих и разобраться EI особIIНОt,;тЯ:\ системных решений различных ФирмпостаВIЦJ{КОИ: усвоить КОМПЛfJ(С основных приемои работы. что изБЗИJ.rr от нсоб\:(1'Ш МОСТИ рьrться и ,nокументзuии, пьпаясЬ узнать, как ВhlllОЛllllТЬ простую задачу. Перечисленные задачи невозмоЖНО решить С абсолюТlIОЙ CTellC'HL>(Q объектИlIНОСТИ. ПОЭТОМУ по хону книru: мы постарались маКСИМШ1Ыlo I.JcrKC} сформулировать сиои субъе""iивные взrляды и предпочтения. ОсобенносТl. системноrо адМИНИСтрИрOllания заЮlючается и ТОМ, что ОI1ЫТ!-lые адМlflнlt:т раторы MOryr иметь совершенно разные представления о пршшлзх н проuедурах управления СИС1емами. Вам придется самостояте;IЬНО ршать. какой именно материал и в какой стеllени соотиетствует той среде, 11 которой 8Ы работаете. r l'1Ово 1 С чеrо ...ачоТh 19 
1.1. Что необходимо знать Мы предполвraеw., что У читателя сеТЬ определенный опыт работы с UNIX. В чвстности, необходимо иметь обwее npедстввление о том, жак выrлядит и ведет себя система с ТОЧКИ зрения пользователя. ЛИШЬ при ЭТОМ условии можно переходить к изучению принципов администрирования. Книrи, перечисленные в пвраrpвфс 1.9, помоryт заложить необходимый фундамент знвний. Большинство зaJtвч администрирования решается путем редактирования файлов конфкryрвuии и нвписвния сценариев, позтому читатель должен быть знакоМ с какимнибудь текстовым редвхтороМ. НастоЯТельно рекомендуем изучить редактор vI. Он ЯllЛяется стандартным мя всех UNIХсистем и, хотя выrлядит несколько "бледным" нв фоне более мощных nporpaмм (в частности, emacs), вбсолютно притоден ДЛЯ работы. Если ОТдаТЬ предпочтение друтому редактору, очень быстро надоест устанавливать ero В каждой новой системе. К разочврованию мноrих, ИСПОllЪзование Microsof\ Word в качестве универсальноrо TeKcToBoro редакторв является серьезноЙ помехой нв пути эффективноro системноro администрироввния. Один из важнейших инструментОв вдминистрвторв UN IХ  ЭТО сценарии, предназначенные для автоМВТИЗ8UИи основных задач. Примеры TRKOro РОда сценариев приводятся нв протяжении всей книrи. Чтобы стаТЬ профессио налом. необходимо научитьСЯ читать и модифицироваТЬ сценарии, написаН иые на языке Bourne shell (sh). Сценарии, которые пишутся "с нуля", моЖНо составлять на командноМ языке или любоМ доступном языке сценариев. Для новых проектов МЫ рекомендуем применять язык Perl. Как язык проrpвммирования, он несколько необьrчен, однако включает IdИoro средств, полезных ДЛЯ администратора. Кроме Toro, советуем изучить ЯЗЫК системы expect, который более подробно рассмвтривается в парвrpвфе 18.2. Этот язык можно ОСВОИТЬ доствточно быстро. 1.2. Краткая история UNIX Опервuионная системв UNIX зародилась в 1969 r. в рамках научноис следовательскоro проектв лаборln'ОРИЙ Вell Labs корпорации АТ&Т. В 1976 r. онв сталв бесплатно рвспрострвняться В университетской среде, что послужило основой ДЛЯ мноroчисленных курсов по опервuионным систеМаМ и, cooтвeT ственно, ДЛЯ дипломных проектов. В конце 70x rr. в АТ&Т былв создана rpуппа поддержки UNIX (UNIX Suppon Group, USG), впоследствии преобразованная в систему пвбораторий UNIX (UNIX System Laboratories, USL). 3адачей rpупrты былв "раскрутха" U N IХ как коммерческоrо npОду1<Та. Разработху системы продолжвли и в Bell Labs, и в USG, но в разных наnpввлениях. Версии USL  S}'1ilem 111 и Syslem V  получили широкое раcnрострвнение и оказвли большое влияние на развитие современных операционных систем. ОС Вerke1ey UNIX былв создана в 1977 r., коrда Исследовательская rpynna ПО вы'!и.mrreлъныыM системам (Computer S}'1ilems Research Group, CSRG), орraнизованная в Калифорниltском университете в Беркли, приобрелв лпuензию на исходный код системы у комnвнИИ АТ&Т- Версии, выпускаемые этой rpуппой, coкpвweннo назывались В50 (Berke1ey SOf\wBrc Dislribution). Их выпуск нвчался в 1977 r. с версии IВSO дЛЯ мвшины POP 11 и досmr КУlIЪминamm в 1993 r., коrда вышлв версия 4.4В50. 20 Чость I ОСНОВЫ одминистрирО80НИ 
Для коммерческих пользователсй лииензии А Т& Т на исходные тексты всеrда СТОИЛИ дореro. Для унивсрситетов они сначала бьши дешевыми или вообше бесnлвтными, но по мере завоевания системой UN LX коммерческоro признвния ценв быстро росла. В конце концов, специалисты Беркли принял>! решение убрвтъ "од АТ&Т из BSD. Работв предстояла долraя, yrомительная и кропотливая. Незадолro до ее завершения университет лишился финвнси роваIOtЯ в области исследований операционных систем и Исследовательскую rpуппу по вычислительным системам рвсформировали. Перед рвсформироввнием rpуттлв выпустилв финальную версию системы без KOдll. АТ&Т под названием 4.4BSDLite. Большинство современных Bepc 8SD UNIX (включая BSDjOS, Free8SD. NetBSD и ОрелВSD) ведут свое начало именно от этой системы. Хотя системы BSD и System V лежвт в основе большинства дрyrих версий UNIX, сами они нихоrда не имели коммерческоrо влиЯ't-{ИЯ, ОбыtlНО поставщики выбирали 01IНY из таких систем в качестве исходноrо варианта. нв основании Koтoporo разрабатывали свою собственную ос. Иноrда на свет ПОЯВJlялись rибрилы. соеДИНЯЮI.I..Ше в себе черты обеих базовых систем. Неудивительно. что со временем версии U N 'Х стали достаточно существенно отличаться друт от друта. Нвстоящим потрясением для мирв UNIX стало появление ядра Linux. которое сеrодня внедрено во мноrие UNIХсисте"ы. Разработка LiПLlХ началась в 1991 r. и БЫJl3 личной инипиативой финскоrо аспиранта Линуса ТорвалЬдса (LinLlx To",alds), который задался 1tслью лереписвть стандартное ядро UNIX. Со временем к проекту подютючилось множество разраБОТЧ"ИКОR. пользователей и прочих энтузиастов. В результате было соз.дано полноф HI< llИОН8Льное ядро системы премышленноrо уровня, ПОДllерживаемое мноrнми поставщиками. Для среды Linux уже напИсаны версИJ1 крупных коммерческих пакетов (к примеру. Oracle) 1.3. Современные UNIXnpoAYкrы в данной книrе в качестве примеров для изучения используются четыре популярных варивнта UNIX: Solaris 2.7, HPUX 11.00, Red На! Linu, 6.2 и FreeBSD 3.4. Они столь распространены. что едва ли найдется сервер UNIX. на котором не БЬL'Iа бы установлена хотя бы olIНa из этих систем. Операuионная система Solalis компании Sun М icrosys(ems ОтНОСIfТСЯ к семейству System V, но обладает множеством расширении. SLln UNIX (так она называлась в серепине 80x rr.) пеР80началъно Я-ВЛЯJ1ась ПОТОМ ко'" Вerkeley UNIX, но альянс (уже прекрвтившийся) ..ежд,у SLln " АТ&Т привел к изме нсниlO платформы. ос HPUX компании HewlettPBckBrd является rnбрИдОМ меЖдУ System V и Berkeley UNIX. но со своими собственными "странностями". Существует несколько систем UNLX дЛЯ платформы Iлtеl. "оторые распространяются бесплвтно. Свмая популярная из них  LinLl". Она реализована в ВИде ядрв, к которому требуется добавить набор команд. yrилит и демонов, чтобы получитъ законченную UNIХсистему. Ядро Liлuх постав nястея вместе с дрyrими компонентами в ВИде дистрибутива. преДН83нвченноrо для полноuенной инсталляиии. Компании, занимающиеся распространением Linux, используют разные подходы JC реализаuии системы. поэтому RСрСИИ Система Unux была перенесена иа множестВО друrих платформ, 8J<JUOчая иrpoвыс ПРИСТilБКИ N Iпtепdоб4. r лова 1, С чеrо ночать 21 
Lioux MOryr весьма отличаться друт от друта. Некоторые компании (включая Red Hal, SuSE и Corel) ПОСТВВIIяют системы промышленноrо уровня, снабженные всеМ комплексом технической поддержки. FreeBSD  это версия UNIX, основанная на системе 4.4BSDLile Подобпо Lioux, онв работает нв плвтформах 101el. Коммерческий вариант системы распространяе1<ОЯ компвнией 8SDI. 1.4. Шрифты 101 условные обозначения Именв файлов. комвнды и Bpryмeнты комвнд, которые следует нвбирать па КЛВ8ивтуре без изменений, даны жирным шрифтом. Переменные пара метры, вместо которых необходимо подст-.lВЛЯТЪ конкретные значения. выделены "урсивом. Например. в команде ер файл каталоr предполаl'8ется. что apryмeнт файл будет заыенен именем реальноrо файла. 8 apryMem каталоz  именем реальноrо К8талоr8. Результаты рвботы команд. а также фраrменты сuенариев и фвйлон конфиryрации набраны моноширинным шрифтом. Комментарии к интерак тивным ссвнсам выделены курсивом, например: , grep воь /pub/pbonelist j* НаЙТИ номер телефона Боба ... / ВоЬ Клоwlеs 55528З4 ВоЬ Smith 5552Зl1 При описании синтаксиса команд мы. как правило, используем те же обозначения, что и в интервктивном руководстве пО UNIX: . текст, заключенный в квадратные скобки ('[' и Т), ЯRЛяется необязател ь ны;; текст, после KOToporo следуe-r мноrоточие ('. _,. "), можно повторять; . фиrypные скобки ('(' и '}') указывают на то. что необходимо выбрать Один из элементов, разделенных вертикальноЙ чертой ('I'J Нвпримср, залиси bork. (x1 ton I or:t} иияфайла . _. соответствует любая ИЗ следующи:х комаtЩ: bork. оп /etc/pasBwd bork. x or /etc/pas5wd /еtз/tеrmсар bork. orr /uer/libIt:mac в выражениях с шаблонами поиска применяются сле.цуюшие метасимволы: звездочка (''''') обозначает нуль или более символов; . вопросительный знак ('П обозначает ОДИН символ; тильда ('') обозначает начальный К8талоr текущеrо пользователя. а выражение "ОЛЫО6атель  начальный каталоr указаНRоrо пользователя, Нвпример, иноша вместо названий сценариев запуска BSD /etc/rc /e't.c/rc.boot /etc/ rc . 10са1 можно использовать сокращеннъni шаблон /etcjrc*. 22 " Чость I Основы ОДМ...,НИСТРИРОВOI-IИЯ 
Информация по конкретным системам Привсденные 13 книrе снедения относяrся. как правило. КО всем }'ТlОМЯli}iЫМ системам, есt]И не имеется соответстауюших указаний. Подроб ности, касаЮlIlIIеся конкретной системы, помечаются эмблсмоЙ поставщика:  Solaris 2.7 p] HPUX 11 О  Red Нв( Liлuх 6.2  Fre"BSD 3.4 l' Эти эмблемы использованы с разрешения их влaneJ1ЬUС8. ОтмеПIМ. что фирмы не рецензировали эту книry. 1.5. Как пользоватьСЯ интерактивным руководством в документ.аuии 110 UNIX МОЖНО н.аИТIf нее, IITO I-IСllU"\ОЛИМО ЗНЗIЪ 1V1S1 обеспечения работоспособНОСПI СlIстемы 110 Иllоrдз Л}' IllIф"РМ3IlИЮ СЛОЖIIО отыскать, кроме тoro. часто 01-1.3. подана в трудной дл::.1 fЮI,:IIРИЯТНЯ форме. у иас обязательно должсн быть В Нз..rШЧIIIt 11O!II-IЫЙ Jo.:OM'flIO Т локументаШfl1 ПО TO верСfИ UNIX. которю аы используете. НО .:ПО НО1lсе не ОJначаст. что нужно ПОКУП8ТЬ печатные Iвдания. Большинство ДОI()-МОПnЦИИ ДОСТ)'ПI-ю в элеll.-ТРОННОМ ВИДе либо в самой системе, либо на \\"ebYJ.'11.:' t:'e постаншика. Докумеmация, поставляемая иместе с UNIX. кож "раНI1ЛО. бывает ниу:" типов. mапстраIOfиы (ИХ название rОВОрlП о том, ЧJQ Iти cтpalllfllbI предназначены для rJpOCfoтpa С ПОМОIllЫО команды Ш:IП) 11 'IOПОЛНlпельныс статьи. Первые сонержзт полное оmlС311ИС отдельных l<оч.IIIД, формаТОR файлов If библиотеЧIIЫХ подпроrрамм. ОБЫ1.JНО они ДОСТ)IIНЫ Н l1IflOrol.O\f реж.име. но Ifllоrда 1I0стаНЛЯЮТОI и в распеЧ;:П3I1НО),f "lI...1 r .:. Статьи  )ТО более объемные AOJo.:YMeHTbI. u которых 1)..1110 подробllое ОПlfсаl---ше ТОЙ или иноЙ темЫ. Они с.'IУ'...кат ДЛЯ УI'л,,"б'III"lOrо IПУ1lеlllШ материал и поt.lОЩIl и решении практическнх Jaдa'--l. Со МIЮПiМИ КоМПоНfll. тами проrраммноrо обеспечения связана каК m;шстраННU<I. raK и стзп.я Например, mапстраниuа редактора vi СОДСрЖ11т IllIфОрМi.ВIIПО о(> apl)'MCIITC\'\: JCОМ3.lUJ,ноЙ СТроЮ-f. НО для Toro чтобы узнать. как рс.пт...'..ПIРUИ;JП. Kotlkpe-ПIМn файл, придется обратиться к прилаrаемоЙ статье. Поскольку mапстраН"ILlЫ тесно спязаны с IIporp;J.MMHloJr..f оfiССПС[lfНИС"I. которое ОlfИ описывают. поставшики стtiраются НС сшrыIO 11'\ менять и дс.,IШОl :по тfШЬ при модификашш самих nporpat..JM.. С ДОПО"lI-lСНИЯМИ дело оБСТОl1I иначе. так как мноrие поставщики ПОЛIIОСI.ЬЮ ji:lMCII1Unl lрДИI(IIOIIIIЫ руководства ноиыми книпlми И ДОКУf,.lеlпаМI-!. Ряд важ.неИllШХ компонентов UNIX IlOдnеРЖltиастся crOPOHIII-IМИ OpIIII заuиями. такими как ISC (Iщеmе( Sof(v.'are Сошюrtшm  Io..OHt:0PIIIIY..1 разраБОТЧИКОII проrpаммноrо обеспечеНllЯ для II,terneO н ASF ,,\Р3С)lе SоВ\\"ап' Founda[iol1  орrаюпация р3.3рабо'ТЧикои npO'lJ3MMHOI о об('СIIC:,чеНIIЯ ,Д...1'Я Apache). Эти орrаниз.аuии обычно предоставляют и ДОКУМСНI<ШIIЮ К pacllpo страняемым пакетам. Некоторыс постаВЩИЮ-f ПРОд;lЮТ ПрОI"р.з\п"шое оБССrl(.' чеНIIС без документации. поэтому в TКlIX СJIУЧ&JЯХ необ"О1ШМО ш-tiсрссоваП.С)1. ,"Iмеются .:IW ДОПОJn-tитеЛЫlме мз replaJlbI" Однако так пронсхолнт не вcerna. КО:\1Il3IЫЯ He,,IeIlP.lckilrd. II;tnpIlMC'p. IlрО.D".....а:ы 011'0\1 ную работу по редаt.."'ТllроиаIНlЮ IШ'"СТР;]fIIllI r лово 1. С чеrо ночать 23 
Дрyrим цcHным ИСТОЧНИКОМ информвuии О проrpвммных пакствх UNIX является серия документов RFC (Requesl for соmmел!s  звпрос нв KoММeH тарии), в хоторых описываются протоколы И проrpвммное обеспечение сети In!emet (см. пврarpвф 13.1). Орrанизация страниц руководства Во всех UNIXсистемвх mвпстраНИUЫ делятся нв разделы, однвко точное определение каждоrо раздела зависит от системы. Базовая орrанизация mвпстрвниu представлена в табл. 1.1. т облцо 1.1. Разделы mолстронц . UNIX 5010rl. HPUX !dл' FreeB5D Содержание 11 I I KoMIuulы И прил.ожеиия nOJ1Ь3OB8TeJ1ьcкoro уровня 1 2 Системные вызовы И коды ошибок ЯдРа Э Э Библиотечные функции 4 S Сп.ндартные форматы файлов s 7 Раз.личны( файлы и документы 6 6 иIl'.ы И демонстраиионные IIporpa.м.мы 4 Драйверы устроАств и CBыe протоколы 1т 8 Команды Clo1cтeWforo а.п.м:и.н.истрирования 9 9 Внутренние юrrерфейсы и спеuифихаиии ядра Во мноrиx системах осушествляется разбивка разпелов m8пстраниц на подразделы. Например, подраздел 3т чаСТО содержит mапстраниuы с информвцией о библиотеке мвтематичесЮIX функций системы. Сушествуют тзюке значительные различия в распределении mапстраниц ПО разделам: в некоторых системах раздел 8 оставлен пустым, а комаlШЫ системноrо администрирования помещены в первы1! рвздел. Во MHOrnx системах O'I'Cутствуют иrpы и демонстрационные при меры. поэтому рвздел 6 пуст. Большинство систем ПозвОЛЯЮТ создавать раздел руководства под назва нием 'С)" ШlЯ mапстраниn. которые имеются только На данной машине (локальныe mалстрвниuы). Дрyrое общепринятое обозначение  раздел .оп" д.тrя описания тех nporpaMMныx средств, которые не являются cтporo локальными. но и Не ВI01ючены в стандартную поставку. Неформатированная информanия для mапстраюЩ традиционно хрвнится в каталоf'8Х /usr/mап/mапХ. rдe х  цифра от 1 до 9 либо буква Т И!ТИ 'л', и выводится иа экран с помощью проrpаммы trorr. отформвтироввнныe версии руководств находятся в квталоre /usr/mвп/свIX. Командв mвп форМВ тирует mвпстрвницы "нв лС1)''' (непосредственно в процессе отображения). Если в каталоrn са! можно записывать информвuию. то этв комвнда сохрвняст отформвтироввннъ.е страницы по мере их создвния, помещая наиболее ЧВСТО читаемые стракиuы в кэш. Если в каталоre достаточно ecтa, то, восполь зовавЩИСь комвндой catman, можно одновременно отформвтировать все maпстрвницы. В некоторых системах, нвпример во FreeBSD, mвпстрвницы перемещены в каталоr /usr/shаrе/mап. Часто стрвницы крвнятся сЖаТЫМИ (с помощью утилиты compre!ili или кzip) с целью экономии места. 24 ЧОCl"в 1. ОСНОВЫ О'nМИНИСТРИРОВОНИfl 
 в Solaris языком формвтирования mапстраниu ЯТ\Ляется SGML (Slалdвrd Genera\Jz Markup Language  стандартный обобщенный зык разметки). Страницы, отформвтироввнные с помощью yrилиты Irolf, подаерживаются, но ХРВНJrТся в отдельном катапоте,  Чтение страниц PYKoBoAcrBa: команда man Команда mап заzолов"" формвтирует конкретную странниу руководства и посыпает ее на терминвп пользователя посредством nporpaMMbI more (или друтой проrpаммы постраничной разбивки, З811анной в переменной среды PAGER). Apryмeнт заZОЛОВОК  зто, как правило, имя "аманды, устройства нли файла, о которых необходимо получить справочнуто информаuию. Поиск по разделам руководства осуществляется в ПОРЯдке возрастания номеров, но разделы, описыl!8щиеe комвнды (1, 6 и 8), обычно просматриваютс в первую очередь. Командв mап раздел заzо,JОВОК вызывает mапстраниuу из указанноrо раздела. Так, команда mап Ity BЫllacт на зкран страниuу руководства по КОМВНдс tty, а команда тап 4 tty  страницу для драйвера послеДОВ8ТeJlЪноrо порта. В Solaris номер раздела необхоJIИМО предварять флаrом s, например mап ! 4 tty. Почти все версии КОМЗI-ЩЫ тап проверяют, определена ли переменная среды МANPATH, которая должна СОllсржать ра3l1еленный двоетоЧ1lЯМИ список каталоrов. С ПОМошью переменной MANPATH можно отменить юи расширить список кзталоrов. в которых по умолчанию ПрО80ДИТ ПОИСК команда mап. Например, размещенная в файле .1og1п запись setenv МANPATH /hоmе/зhаrе/lосаlmап: /usr/man указывает команде man на то, что требуется вести поиск сначала в каталоrе локальных mапстраниц, а затем в каталоre /usr/maB. Версия зтой команды длЯ интерпретатора Воиrnс shcll будет иметь тахой вид: МANPATH=/home I зhаrе/l0саlmaп: !usr /man export МANPATH в некоторых системах переменная MANPATH полностью отменяет П}1'Ь поиска, заданный по умолчанию. Поэтому слелует указать стандйртный каталоr ЯВНО, если необходимо продолжать просмотр mапстраниu. пол}'чен Hых от поставщика системы. Команда man k к.лЮ'iевоеСЛО80 печатает сшtсок шапстраннu. в строке пояснеIOfЙ к которым имеется указанное кrnoqeBoe С.ттово. Например: , man k trапзlаtе 9ftype (lL)  transla.t.e 4 font. f1.1e for humans t.o read pktype (1L)  translate а packed fолt file tr (1)  translate cha.ra.cters База данных кточевых слов обычно хранится в файле wharis R "корневом каталоre иерархии mапстраниn (/usr/mап ит, /usr/shаrе/mап). Если в систему вводятся дОполнительные mапстраницы. то. возможно. потребуется ncpccтpo ить этот файл с помощью команды саtmап w. r лово 1. С чеrо ночоть 25 
1.6. Основные задачи системноro администратора в .:rrOM париrрафе содержится обзор некоторых задач, реш(:ние которых оБЫ'ЛiО В(ПllRШСТСЯ на СИСТемнОrО администратора. Совсем не обязательно. 1'f()Бы JП{ ФУIIКUIII,I UЫIlQЛНЯЛ ОДИН человеl':. Во мноrи'\: орп:шн'ЗаШIЯ)( работа распределяется среди нескольких aAMl-1 НИС1-р3ТОрОВ. В любом случае необхо лим Jt..ОТЯ бы ОДИI-I человек. который понимал бы все поставле..rnые lад.3ЧI{ и DБСCnС1IИВал ИХ реализацию .nрyrими людьми Добавление и удаление пользователей 0' Ба 1('[' lJодробllРО UllфОРАlаи.шо о добавЛf'lllШ новых п.О.1ыовотедеЙ .4Ш,ll('Щ) I'ОЛУ'ЩпJh в zлоис 6. СОJдаЮIС учетных записей ДJ1Я 1I0BbD.: пОЛЬJОВJ.ТСТJеи и Yll,L:leHlie учетных ЗiiffiН.'"СИ тех пользопзтмея. которые У'...кс не работают 8 Сliстем, 8J1яется оБЯ3ЗIIIIОСТЬЮ СIIСТСМI-юrо администратора. I Jропесс управления записями можно аl.Поматизировать. но ряд решений, связанных с включением в систему HOUorlJ ПОЛhJоваТCJIЯ (rAe следует разместить ero началыIый каТШ10r, на каком КОМlIЬЮтерс будет создана учетная запись и т,д.), должен ПРJtИJlмать адМИIIНСТР.ПОР_ r \ ли необходимо прекратить доступ пользователя к системе. следует отключить ero учетную запись. Все фai1flы' опюсяшнеся к JTOMY lIолыопа телю, нужно удалить, чтобы OHJ1 не заНIfМ3.ЧII места на Дl-1ске. Подключение и удаление аппаратных средств 0' ДотыltuтеЛhНйЛ UllфОр.мйи.uя по данной тe/.fe npиBeaf'Ha в l.1OBax 8, /2 и 13. В сл}'чае Прl-lOбретения I-IOBЬL'X аппаратных средств или подключения 'Же имеюшихся устройств к llрyroй маШ-Иl-lе CltCTeMY нужно персконфиryрl-Iровать таким образом. Ч'Т'обы ОНа распознаflЗ и 8КТИВИЗl-lровала эти устройства. Иlменени КОНфltrураllИИ может быть как простой задачей (наПРl-lмер. ПОдключение Пр51нтера), так 51 более сложной (скажсf'.!. подключеЮ1е жесткоrо диска) Резервное копирование 0' ПоdробllСС О рсзсрвно.м копировании вы можете узнать в i!ЛОВе /0. Резрr'lное копироnaюtе является одной из нан более важных задач систеf.ШJ.lХ администраторов. которую они. к сожалеНI-IIО. чащ вcero ипlO рl-IРУЮТ или ВЫПОЛНЯЮТ спустя руксша. Проuе.nyра pelepBHoro КОПllрОВ<lНIIЯ llО80ЛЫlO }'ТОМJПСЛЬШl И занимает MHoro opeMelHl, но осущеСТВЛJIТЬ ее необходи.мо Этот проuесс можно автоматизировать НЛI-I ПОруtIИтЬ подчинеl-l Hы,' но все равно системныЙ адмИlrистратор обязан убедиться в том, 'fТO резершюе копирование RЫПОJlнено правильно 11 по rpафику_ Инсталляция новых проrрамм После приобретеtrия HOBoro проrpаммноrо обеспечения ero нужно ИllсталЛИРОВiiТЬ 1-1 протестировать, часто в раЗIIЬJ\': всрСИЯХ UNIX и на раIШ(IНОМ оборудованпи_ Если nporpafMы работают нормально, пользовате лям необходимо сооБШIНЬ об их наlJlIЧИИ и меСТОllахОЖденин. локалыlее 26 Часть I ОСНОВЫ администрировония 
проrpаммное обеспечение с.ледует инсталлировать туда, rAe ero можно будет леrкО отличить ОТ nporpaMMHЫX средств, постаВJlяемЫХ 8 сОставе tINIX. Это значительно упрошает задачу расширения операUl-IOННОЙ системы, поскольку исчезает опасность уничтожения локальныХ nporpaM в хОде ПОllоБНQI-О расширения. Мониторинr системы Сушествует великое множество обязательных для ИСIIОJlнения ежеlШf"IIЫХ Оllераuий, например: ПрОверка пранильности фIНКl1ионироваНI"Я эле....--троннои почты и телеконференuий, просмотр реп,страuионных файлов на предме '" нaJtИ1.mя раю"mx I1ризнаков неисправностей; контроль за подключением локальных сетей; контроль наличия системных ресурсов (в частности, проверка наличия свободноrо пространства на диске). Поиск неисправностей Системы UN1X и аппаратные срепства. на которых 01-111 работают. премя от времени выходят из строя. Задача адМЮ.ll-lстрзтора  ДIщпюстировать сБOlI в системе и в случае неоБХОДlIМОСТl-1 вызывать спеuиалистов. Как прзнило. найти I-Iеисправность БL:.rвaет HaMHoro сложнее, 1.(ем устраиlПЬ ее Ведение локальной документации 0" Рекомендации, касающиеСJl веdения дОК)'iЧешпациu. даны в tlараi'рафе 27./0. Настранвая конфиryраuню систе).fы под конкретные требоваНIIЯ. вы вскоре обнаРУ'..кИТf. что она значительно отличается от базоlЮИ конфш)раUI-Ш, которая описана в документаuИl.{. Поэтому снстемный адf',IИНl-lстратор llо.ажен документировать все IНlсталЛl-lр'емые проrpаммные средства. не ВХОllящ1-tе 8 стандартный кш..mлект поставки. документировать разводк\' кабелей. вести записи по обслуживанию всех аппаратных срепств. реП1стрировать состояние резервных копий. ДОI<..,'меНТl-lропать локальные проuсД}ры и праВl-lЛа работы с системой. Слежение за безопасностью системы 0" Вопросы 6езопасноспш рассматриваются в laвe 2 J. Системный администратор Отвечает за реа'шззuию стратепш JаШIiТЫ Ii должен периодически проверять, не нарушена ли lашита (1-lСтеМhI В система.х ( НИЗКИМ ypOBl-lем безопасности 'Эта проидура может быть сведена BcerO лишь к нескольким текушим проверкам на предмет несаНКЦИОНИРОВaн.J-lOrо доступа. В система.х с высоким уровнем безопасности оБЫЧliO ПРl1меняется СЛОжная система ловушек и проrpаым контроля. Оказание помощи пользователям Пун"". "оказю-rnе помощи пользователям в решении РЗЗ-тIичных Ilроблем" редко включается в должностную IfIIСТРУКЦИЮ системноrо altMl-tНI-IСтратора. несмотря на то что выполнение подобноrо рола обязанностей "съедает.' большую ЧСТЬ рабочеrо времени. Системных i:IДМИНl-lстраторов бомбардируют самыми рЗJНЫМИ вопросами. НЗ1.fиная от '.Вчера моя nporpaMMa работа:lа. а сеrоДНЯ нет! Что Вы поменяли-:>" дО "Я пролн.л8 кофе на КJlапиатуру Нужно ли теперь полить ее водой. 1.fтобы смыть кофе?" r лово 1 С чеrо нО40ТЬ 27 
1.7. Как искать файлы в Internet Информвuия по вопросам системноrо администрирования ДOcтynHB в больших количествах и в разных формах. Список ресурсов, к которым может обращаться начинающий администратор, приведен в rлвве 27. Основным истоЧНИlCOм информвuии IIВЛ>1стся (п!сmе!. Вопросы, касаю щиеся систсмноrо администрирования. можно вводить даже в таких поиско вых системах. каК www.yahoo.com. www.al!avista.com и www.webopediB.com. Мноrис wеьузлы иепосредственно посвяшены lIВнной теме. Вот HeKO торые из НИХ: . freshmca!.com  оrpомная коллекuи проrpаммноrо обеспечения ДЛ Liпuх; . www.ugu.com  аббревиаrypа "иgи" расшифровывается как "UNIX Guru Univcrse  вселеиная IYPY UNIX"; нв этом узле содержится MHoro информвuии для системных администраторов; www.s!okely.com  хорошая коллекция ссылок нв ресурсы, связанные с системным администрированием; www.tucowS.com  качественное проrpаммное обеспечение для Windows и Macintosh; . slashdo!.org  место, rдc пуБЛИJ()'ются новости для особо любознательных; . www.cpan.org  uентральный ИСТОЧНIIК сuснариев и библиотек Pcrl: . securi!yfocus.com  WсЬузел, посвященный вопросам безопвсности; оrpомнвя поисковая база данных. 1.8. Издержки профессии Системные адмmrnстрзторЫ  это люди, сидящие на нескольких с'I)'лъях. Они чвсто имеют друтую работу просто их попросили присмотреть за несколькими компьютерами "на стороне". Если вы один из таких людей. подумайте о ТОМ, к чему, в Koнue КОНЦОВ. ЭТО может привести. Чем больше вы будете знать о UNIX, тем больше пользователи будут зависеть от вас. Сети неуклонно разрастаются, и, следовательно, вЫ бlдете вынуждены тратить все больше и больше времени на выполнение ФУНКUI-IЙ администратора. Вскоре окажется. что вы  единственный человек во всей орrанизаuии. который знает, как решить uельrll ряд важнейших проблем. Если КОJ1леrи стали считать вас лока-Т1ЬНЫМ системным алМИНl-lстратором, от зтой роли уже трудно отказаться. Мы знаем нескольких людей, которые вынуждены был.и лаже поменять место работы, чтобы избавиться от дополнительной нarpУ3КИ Поскольку крут обязанностей системноrо адМI-IНИ стратора четко оrраничить нельзя, от вас, скорее Bcero. потребуют, чтобы вы были не только штатным администратором, но и шrатным инженером, писателем. а также секретаре.м. Чтобы прекратитъ поток просьб со стороны своих коллеr. некоторые администраторы начинают плохо выполнять CBOI-I обязаННОСПl, становяТСЯ раздражительными или вообше иrнорируют большинство просьб. Не peKO мендуем вам приперживаться такой политики, иначе У вас MorYT возникнуть дополкительные проблемы, в том числе и в отношениях с окружаюЩI-IМИ. Вместо 3Toro предлaraeм следующее. ведите работу на должном уровне. одновременно реrистрируя время, затрачиваемое на Cl-lстеМНОе адмииистри рованис. Собирайте JlОКазательства. которые можно будет использовать, KOrJIa вы попросите освободить вас от обязанностей администратора. В БОЛЬШИlJстве орrаниэаuий для TOro. чтобы добиrься замены, приходится упрашивать руководство полroД8. а то и roд, так что учитывайте ЭТО в своих планах. 28 Чость 1. Основы ОДМt.<1Нt.<1СТрt.<1рОВОНt.<1Я 
С дрyrой стороны, может ОКВ-1ВТЬСЯ, что системное администр"роnaние вам нравится, и вы захотите стать I1fТBTHЫM администратором. В зтом CJJyЧ.вс npoблем с поиском работы у вас не будет. К сожалению, самв работа от зтоro не станет леrче. О том, какие ужасы вас ждут нв данном лоприщс, рассJCВ3Ывается в rnаве 27. Синдром храническоrо администрирования ОДНОЙ из малоприя1'ны,' но, увы, рвспространенных болезней, COllpOBO Ждающих человекв, который работает системным администратором, является синдром хроническоrо администрирования. Признаки заболсваНIIЯ обычно ПРОЯВJIяются на третий rOA после начала рвботы администратором 11 MOlyr привести к преЖдевременному уходу нв пенсию. Ниже перечислен неПОЛlJЫЙ список ХВр8ктерных симтrrомов. . Острая ПСЙдЖерофобия  раздрвжвющес ощущение TOro, что у вас срвботал пеЙдЖер и ваш мирный вечер с cynрyroй внезапно п;>ерван. Вам JCIIЖется, что вас срочно вызывают для устранения лослсдствий Ч П И вам придется работать 72 чвса подряд без перерывов на еду. . НВIIЯ3чивая пользователемания  маниакальное стремление протыатьь иroлхами кухольныc фиryрки отдельных представителей ПОЛЬJовательско ro племени, которые не понимают. что постоянное отсyr(,:твие rpaMOTHoro планирования является ПрИ'fИНОЙ Toro, что они называют непраВИ1!ЬНЫМ администрированнсм. . Идиопатическая лентоплексия  внезапно проявлmощееся поздней НОЧЬЮ стремлеЮiе смонтировать леНТОЧl-lЫЙ накопитель для рсзервноrо копиро вания, чтобы убедиться в том I ЧТО ом читается и маркирован правильно. . Интеллектуальная шизоидн&я нетерпимость  непреодолимое желание C'JYIOfY!Ъ знакомото системноrо sдминистрвтора, который никоща не применял нвучных методов администрирования. Для лечения болезни MOryr яспользоваться различные тералсвтическис метоДИ1<И. Наиболее эффективными являются принудительное развитие чувства юморв и орrанизаuия небольщоrо, но хорошо оборудованноrо ВИIIНоrо поrpeбка в офисе. Допускаются также более медитвтивныс методы, нвпример молчалнвобезучвстнос рвзrnЯдыванис окружвющсrо пространства, коrда РЯдом с вами раздвется очере.дной rневный возrлас "Что? Сервер снова упал?!" Если ничеrо дрyrorо не nOMorBeT, возьмите omYCK. 1.9. Рекомендуемая литература . Anderson, GBII, впд Pau1 Алdеrsоп. Тhe UNIX С She/l Field Gllide. EngJcwood CliJfs, NJ: Pren!icc HaU. 1986 . Hcwlet!PackBrd Сотрапу. The иliiта/е Guide /0 /he VI and ЕХ Тех/ Edi/ors. Redwood Ci!y, СА: ВепjamiпjСummiлgs. 1990, . Abrahams, PBUJ W., впd Bruce А. Larson. UNIX for /he lтpa/ien/, 2nd Edilion. RеadiП8, МА: AddisonWcslcy. 1995. . Peek, Jerry, Tim O'Reilly, and Mikc Loukides. UNIX Power Tools, 2nd Edilioп. Sebas!opol, СА; O'Rellly & Associa!cs. 1997. . MOn!jomc\)', John, Влd Woody Leonвrd. Тhe Underground Guids /0 Unix: SI/gh/ly Askew Advice from а ип/х Guru. ReBding, МА: AddisonWcsJey. 1995. . Reichвrd, Кеvlл, алd Eric Fos!erJohnson, ип/х in Plain Eпglish, Зrd Edi/ion. Fos!er Ci!y, СА: IDG Books Worldwide. 1999, . Rankln, ВоЬ. Тhe No BS Gиlde /0 L/nиx. No S!Brch Press. 1997. . Wв1I, Larry, Тот Chris!iansen, Bnd Raлdal L. SChWBrtZ. ProgrammmB Реrl, 2nd Ed///on. Sebas!opol, СА: О'RсШу & As'ociBles. 1997. r Л080 1. С чвrо начать 29 
2 Запуск и останов системы UNIX  t.:'!l(Jжная Оllер.аЦllOllная CIICTe\la. н процсд)ра ее ПК-lючеННSI/ВЫ I<.JlючеИIISI не СИОДlнея к прОСтому li8жаПIIO кнопки ПIПiШI-IЯ. Поэтому ееЛ,",1 81>1 хотитс. чтобы система работала корректно, 8ЫПО.'lняйте операции заПУСJal и оаанооа по всем пра"И.13М. Проuесс начальной заrрузки cHcTet"fы исеrда казаrrся заrадо'шым, но 011 БЫIl проше D те времена, коrда один пронзподите..тIЬ постаШIЯJl неликом ка}.; аППttрЗТНУЮ. так и проq>аммную часть СИL-темы. Сейчас, Korдa UNIX работает иа персональнык компьютерах, необходимо Прl-lДсржнваться правил, YCTaHOB ленных Компанией Microsoft, [ПО порожлает существонание мноrочllсленныx КОНфl-ll)'раций. Несмотря на то, что МЫ paCCM8tpl-Iваем особенности заrpУЗКlI 8СС'Х тестоиы)" систем. вы УВИдlПС, что rораздо БО.lьше Dtlнмания уделяется системам, vстановленным на персона'1ЬНЫХ компьютерах, чем CIICTeMaM, ВЫllОЛНЯЮШl-lМСЯ на оборудоваНИl-1 собственноrо ПоетаВШI-IК3. ХО1"Я данная [лава 8 книrе  одна 1-13 первых, в ней мы I-шоrдз оперируе ПОIIН[Ю1МИ, которые подробно рассматриваются лишь 'Iерез несколько сотен страllИU. ПО..JТОМУ рекомендуем также ознакомиться с rлзва\IИ 5, 12 и 28. Если ваша система заrpужается без проблем. можно ПРОПУСТlпь эту rлаву и 8СрН}'1'ЬСЯ К ней позже. От\tСТИМ, что прОТСК8НI-IС проиесса НаЧальной заrрузки заВl1сltт от TI-Ina ИСПОJlьзуемоrо оборудования. Приведенная lЛесь 11 НфОрМ3ШtSl верна Д.1Я оОшсrо СЛ)'Чая. однако н конкретной системе MorYT ПрОЯ8J.1ТЬСЯ некоторые OT:lI-IЧI-IЯ. 2.1 . Начальная заrрузка Под начальной ззrрузкой подраЗУ'lевается сало]апуск КО!l.шыоrера при Н....лючсНI-IИ питания. Поскольку средства onepi:1Ul10HHoh Cl-lстеМbl на данном этапе недоступны, компьютер должен в буквальном CMbIc.Tle "оБСJ1УЖIПЬ сеБJ:l сам". Процесс ВКЛЮ'lает заrpузку cllCTeMHorO ядра в память и ero последую шую a.....,.l-lвl-lJ.aЦию. Затем ВЫпОЛШlется ряд I-Iниuиализаuионных за.д.ач. после чеrо система rOTOBa к обслужипаниlO пользователеЙ. 30 Часть 1. Основы адмИНИСТР"'РОВОIIИЯ 
Начальная заrpузка  ЭТО перl-IOД особой уязвимости в жизни Cl-lстеМbl. Ошибки в конфиrypauионнbIX файлах, сбои в работе оборудования. по.реж llения фай.новых систем MOryr помешать компьютеру нормально начать работу. Настройка режимов заrрузки во мноrих случаях ЯВJISlеТСSI одиой из первых задач, которую приходится решать администратору в новоЙ системе. К He счастью, эта задача  одна из наl-Iболее сложных, и для ее решения необходимо хорошо знать UNIX. KorHa прОl-lСХОАl-1Т ВКJ1ючеНl-lе питания, запускается на выполнение заrpузочный код, храняшийся в ПЗУ. В ero обязанность ВХОдИТ запуск '!дра Ядро опрашивает состояние оборудования, а затем запускает системныи процесс init, идеНТИфllкатор Koтoporo вcerдa равен 1- ПреЖде чем на экране ПОЯВJlяется реrистраUНОliное приrлашеНl-lе. про исходит uелый ряд событий. Файловые Cl-IСтеМbl должны 6ыть проверены 51 смонтированы, а системные демоны  запушены. Соответствующие npoue дуры ревлизуются с по,,-fOШЬЮ Cuehapl-Iев I-Iнтерпретатора slleH. которые ОДI-IН за друrим запускаются проиессом init. Стартовые Сllенарl-IИ часто называют "rсфайлами", поскольку они имеют префикс " fC ", Он расшифровывается как .Iси" command"  .'команда запуска'.  и ЯШlяется пережитком, доставшимся UNIX в наследство от оперauионноЙ системы CТSS. Конкретная cтpyкrypa стартовых Сllенариев 1-1 способ их выполнеЮ1Я зависят от ..:истемы Все зти вопросы будут рассмотрены в данной rлаве. Автоматическая и ручная заrрузка БОЛЬШИНСТ80 UNIХСI-IСтем может заrpУЖЗ1ЪСЯ 11-160 В автоаТИ'lеском. либо 8 ручном реЖl-lме. В перВО1 СЛУ4ае система ззrружается C3MOCTOSITC!lbHO. без какоrолибо вмешательства извне. Во втором с.rIlЧае она также ззq>У.iКаетсJ.! автоматически, но до определенноrо момента: перед выполнением основных иниuивлизируюших Cuehapl-Iев УПРЗВJlение передается оператору (челоВе....у. сидящему за терминалом). В это время система находится в так называемом "однопользовательском режиме". Большинство Cl-lстеМНbIХ "роиессов не выполняется, и вход дрyrих пользователей 8 систему невозмож.ен. В повседневноh работе почти всеrла применяется автоматическая заrруз ка ТИПl-lчная проuедура заrр'ЗКИ выrлЯillIТ так: пользователь вк,lючает питание и Ждет (жnет...), пока снстема перейдет в диалоrовый реЖЮ.I. Системный администратор. однако, обязан не только поннмать. как проходит проиесс авТОматической заrpузки, но 11 знать. как заrрузl-IТЬ CI-Iстему BPY'-jНУЮ. 3arpужать Cl-lСтему вручную чаше Bcero ПРI-IХОДИТСЯ при возникновении проблем. вызывающих прерbIваНl-lе автоматнческоrо C1pouecca заrрузкн. Это MOryr быть, например. повреждения фаh1080А системы или ошибки в конфнryрации сетевой платЫ. Этапы заrрузки Обычно проuесс начальной заrpузки состоит из шеСПI этапов: заrрузка и инициa.rшзаuия ядра . распознаванllе 11 КОНфllryрИРОБаНl.е УСТРОЙСТR; запуск самовыполняющихся Cl-lстеМНbIх проиессов: . выполнение команд оператора (только при ручноh заrРУJке); выпО.lнение стартовых сuенариев; . переход в МнОrопользовательскии режим. r лОва 2. Запуск и останов системы 31 
Почти все этвnы проходят без контроля со стороны администрвтора. Можно управлять процессом заrрузки, редактируя стартовые сценарии. Инициализация ядра 0' ПодробllО О ядрt РОССI<a:Jыеается е zлоеl 12. Ядро UNIX са\о10 по себе является проrрвммо!\, 11 первы!\ этвп начвлыlO!\ эаrpУ3КИ заключается в считывании этой nporp8MMbI в память ДЛЯ послеДУЮ R шеrо выполнения. Имя файла ядрв определяется разраБОТЧIIКОМ КОIIКРетной системы, но традиционное ero название /Bnix или /vmBnlx. в нветояшее время разрвботчикн не придерживаются cтporo этоrо соrлвшения. В большинстве систем заrрузкв lIдpa осушсствляетея в два этапа. Снвчвлв в пвмять маШIIНЫ с диска или мвrнитно!! ленты считывветея (с помошью кода, З8Лисанноrо в ПЗУ) небольшая проrpаммв нвчвльно!! зarрузки, которая затем выполняет собственно заrpузку ядра. Весь процесс ПРОIIСХОДИТ еше вне UNIX, поэтому в разных системах он реализован порвзному_ Ядро выполняет тестовые проrpвммы, позволяюшие определить, сколько пам.тн IIмеетея в наличии. БО,lЬШИНСТВО внутренних структур ядра обладают фиксироваННЫМ размером, поэтому ядро точно знает, сколько памяти нужно зарезервировать для CBMOI'O себя. Эта память будет недоступно!\ по,lЬЗОВВ теЛЬСКИМ проиессам В большинстве систем Я1lро выдает на кОНСОЛЬ сооБLUе нис об обшем объеме ф",нческой памяти 11 объеме памяти, не занятоЙ Ядром Конфиryрация аппаратных средств Одна из первых задач. СТQЯШI-IХ перед ЯдРОМ,  выявление компонентов аппарзтиоrо обеспечения. Создавая ядро ДЛЯ своеА системы, ВЫ можете указать, какие устройства оно должно проверять. KornB ядро нвчинает ВЫПОЛНЯТЬСЯ, ОНО пытается наЙПI 1-1 иниuиал.изировать все устройства. о которых ему было сообшено. Большинство Ядер выводЯТ на консоль краткую информаuию о каждом обнаруженном устройстие. Информацня об устройствах, задаваемая при конфиryРИРОВВНIIИ Ядра, зачастую Я8JIЯется неполноА. В таЮfХ Случаях ядро пытается ПОЛУЧI-IТЬ неоБХОДl-lмые сведеНI-IЯ. опрашивая системную шину на предмет наличия устройств и запрашивая нужную информацию У соответетвуюших драйверов_ Драйверы отсутствуюших или не отвсчвюших на контрольный сиrнал устро!\ств отключаются. Даже если позже устройство подключить к системе, оно будет недоступно для UNIХпроцессов до тех пор, пока вы не персзаrpузит. машину. Системные процессы После завершения базово ИНИUИ8..1изаuии ядро создает в области памяти. выделенной для проuедур пользователя, неСКО.1ЬКО '.самовыпо.'1НЯЮЩИХСЯ" процсссов. Это пРОИСХОДIIТ В обход CTBHлapтHoro системноrо вызова fork (см. параrpаф 4.2). COBpeMellHble CIICTeMbl рlus-влd-рlву позволяют ЛОДКЛlOЧВТЬ псрифериl\ное оборудование 80 BpeMSI работы компьютера. Несмотря на то что эта технолОrия llостаточно широко распространена, боЛЬШl-lНСТВО систем попре)К}olему требуют перезаrрузки. чтобы новое устройство бы.."Iоo корректно распознано и ИНИUШlЛИЗИРО8ПНО. 32 Часть 1. Основы администрирования 
Чясло и ,арвктср таких проиессов определяются типом опсраuионной системы. В ВSDсистемВJ{ создаются 11>И npouecca: . swapper (идентифИl<ВТОР О); . 1"11 (идентификатор 1); раиеdвето" (l1дентиФикатор 2). Число саМQВЫПОЛНЯЮWl-lХСЯ проиессов в системах семейства SyS(em \" вары.руется: . sched (идентификатор О); 1"11 (идентификатор 1); . различные обработчики сиrнвпов ядра. В Lioux процесс с НДСНТИфlll<атором О отсутствует, а обшее ""сло самовыполнЯIOШИХСЯ проиессов завис",. от версии япра: . 1"11 (идентификатор 1): . рвзличныс обработчllКИ сиrналов ядра (kf1ushd, kupdale, kpiod, kswapd). Из всех упомянутых проuессов ТОЛЬКО 1"lt является полноuенныM пользоватьским процессом; остальные фактически представляют с060Й части ядра опсрвuионной системы, которые были преобразованы в проиессы из конuеnтyвлы.ых соображений. После зтоrо ядро больше Не прннимвет учвстия в nроuспурс начальной звrpузкн CIICTeMbl. К этому моменту, однвко, еше не создан ни один из процессов, ynраВJ1ЯIOШИХ базовыми опсрвl[ИЯМИ (нвпример, lIOCадом полЬ30 вателей в систему), и большинство демонов не запушено. Обо всех этих за.аачах позаботится (в некоторых случаях косвенно) ПРОllесс init. Действия оператора (только при ручной заrрузке) o Если систему нужно запустить в ОДНQПОЛЬЗ0вателЬСКQМ режиме. оператОр указывает при запуске спеuиальный флаr в коман..п.ной строке, а ядро передает эту IIнформаuию "роисссу inil. При за'1'УЗКС в однополъзовательском режиме обычно вымется приrлашение ввеСТИ пароль пользователя root. Если он нвелен правильно, запускается команДНЫЙ интерпретатор с правзми пО!1Ь30 вателя 'ооl. Можно не задавать пароль, а просто нажать <ClrlD>. после чеrо за'l'узка продолжится в мноrопользовательском режиме. В Rcd Наl KOMaнд ны1й интерпретатор запускается без ввода пароля. Более подробная информация о привuлezuя:x пользователя тоос содержuтСJl в ?.лаве 3. В однопользовательском режиме оператор может выПолНЯТЬ команды почти так же, как и в мноrОПОJlыователъском. Однако оБЫ'fНО автоматически монтируете" ТОЛЬКО раздел диска с корневым каталоrом. Дрyrnе файловые системы оператор должен смонтировать вручную ШlЯ Toro. чтобы использовать nporpaммbl, НВJ{опяшиеся вне каталоrов jbi", /sbIn нли /eIC.. Демоны в однопользовательском режиме не запускаютсЯ', поэтому команды, заВI-ICящие от некоторых ссрверных "роиессов (нвлример, mall), работать не будут. 0' Подробнее о файловых системах и их монтировании читайте в zлаве 5. Во мноrИJ< однополъзовательсКIIX средах корневая файловая системв монтируется постytlНОЙ только дlIЯ чтения. Если каталоr /tmp ,"",яется частью КОрневой системы, множество проrpвмм, работаюших с временными фаllлами в некоторых CI-Iстеiах МОIOируетСЯ также каталоr /usr. r ЛQВО 2. Запуск и останов системы зз 
9 (например, редактор "). откажутся вылолнmься. Чтобы исправить подобную ситуаиию, необходимо в самом начале О1IНопользовательскоrо сеанса CMOI-I тировать К8талоr I в режиме чтения/записи. Как ЭТО сделать. зависит от системы. В большинстве случаев достаточно выполнить команду mounL /. а всю необходимую информаuию комаllда ВОЗЬМСТ из файла rsLab или .rstвb. в Red Hat система ведет себя He,-rnoro 'аrpессивнее" в од.НОТlОЛЬ30ва телъСКDМ режиме. К тому МDментуу Korna отобразится приrлашение I-IНTep претатора shell. система попытается смонтировать все локальные файловые системы. На первый взrляд. это кажется удобиьrм. но если с каКОЙI.шбудь файловой СllстемОЙ чтото не в пормке, возникают проблемы. Команда rsck, которая проверяст и восстанавливает поврежпенные файловые системы, обычно выполняется 8 проиессе автоматической заrp}'зки. Если система запускается в ОДНОПОЛЪЗОВlЛ'елъском режиме, команду rsck нужно "проrnать" вручную. Подробно даниая команда описанв в лвраrpафе 8.4. Коrда интерпретатор команд, ВЫПоЛНЯЮЩIIЙся в однополъзователъском режиме. завершит работу, система продолжит зarpузку в мноrОПОЛЪЗО8атель ском режиме. Выполнение стартовых сценариев К тому моменту. Korдa система окажется rOTOBa выполнять стартовые сuеНВРllИ. все "заraдочные" этапы лроuесса зarpузки будут завершены. Перед нами еще не полностью заrруженная система, но это уже UNIX. Файлы сценариев, по СУТИ, лредставляют собой обычные командные файлы, которые запускаются "роuессом init по определенному алrоритму. Точное местонахождение. содеРЖlOе и орrанизаuия стартовых сценариев заCII)'JКИвают отделъноrо изучения (см. параrpаф 2.4). Работа в мноrоnользовательском режиме 0' Детоль,ше uписа,ше "рацесса реzистрации в системе дано в lIараzрафе 7.8. После выполнения I-Iниuиализаuионных сuенариев система полностью roтoвa к работе, за одним исключением: никто не может в нее войти. llilSI Tora чтобы с КОНКретното терминала можно БЫJlО попасть в систему. иеобходимо, чтобы терминал имел свой "роиесс getty, ОЖИ1lаюший поступ пения запросов от этоro терминала". По окончании работы последнеrо cтapтoBoro сuенария проuссс init порождаст все неоБХОДIIМЫС происссы getty, завершая проuссс зarpузки Если система сконфиryр"рована для работы н rpафическом режиме. проиесс ini.. также порождает СООТRеТСТВУIOШl-lе реrист рационные процессы. такие как xdrn. gdш IIЛИ dtlol1in. Необходимо помнить, что ПрОllесс init продолжает IlrpaТb важную роль даже после занершения начальноh заrpУ1КИ В ВSDсистемах он имеет пееrа дна состояния: ОДНОПОJlьзователъское и мноrОIlОЛЬЗ0вательское. В ДРУПIХ системах у Hero есть ОДИН однопользователъский и несколько Ml-lоrа110ЛЬЗО вателЬСКИХ "уровней вьmолнения". определяюших. какие ресурсы системы будут доступны пользователю. УрОвни вьтолнения описаны в парarрафе 2.4. в Solaris используется более сложная npone.дypa реrистраuии. 34 Часть I Основы ОДМИНИСТРИРОВШ-lИЯ 
2.2. 3аrрузка системы на персональном компьютере До cero момента описывапась обшап процедура заrpузки. Теперь HeKO торые наиболее важные (и сложные) ее этапы необходимо рассмотреть попробно, проанзлизировзв особенности работы каждоfl из тестовых опера ШЮНиЫХ систем. А l-13чнеМ мы опять с JТапа ВЮ1l0чения питания и заrpузкн япрз. На 1l'адиционном UNIХоборудоваIПIJ.1 ЭТО IIрОСТОИ проиесс. заслуживающий Л"IШЬ нескольких строк описания. Однако еСШ1 система установлена на персоналъНQМ компьютере, то все значительно СJlожнее. Нам придется п.атъ MHOro ВВОДНОЙ ИНфОрМ3UИИ, чтобы ВЫ смоrли ПОНЯТЬ cyrь ПРОИСХОДЯШ1fX событий. Ест'! вы не работаете на пеРСQН3ЛЬНQМ компьютере. переходите непо срепственно к параrpафу 2.3. Чем персональный компьютер отличается от фирменноrо оборудования Korna кошьютер зэrружается. наЧl-tиает RЫIlQJIIIЯТЬСЯ код, записанныи Б ПЗУ Точное ero местоположеll..lе и структура за8ИСЯТ от пша обор}дования. В компьютерах. созданных спеuиarrьно для UNIX, код "прошивается" разрабоПfКОМ, который заранее задает алrоритм ПОДКЛЮчения устройств, базовой J1нициализаuии сети и распознанания локальных файловых систем. Это очень удобно для системноrо администратора. Ему достаточно 8вести JIMJf HOBoro файла ядра. а код ПЗУ автоМатически обнаружит -и прочитает этот файл. На персоналыtlхx компыoрахx код начальноn заrpузки предстзwтен в виде базовой лодс"стемы 8ROпавЫНОда  BIOS (Basic Il1рш/Оutput System), которая чрезвычайно ynpQ[uclli1 в сравненшt с фирменным кодом UNIXMa UШН. В действятельносП1 в BIOS сушествует несколько уровней КОЛ.а" одr.IН ДЛЯ caMOI"O КОМТlьютера. друrой lL'IЯ иидеоплаты It еше ОДШ1 для SCSI адаптера. есля таковой имееТСЯ. ВL'Троенный коп BIOS знает о некоторых устройствах, расположенных на материнскои плате, в частности о контроллере IDE rи жеСТК"IХ писках), клавиатуре, последовательны'\ и параллельных nopTa.'I.:. А SCSIaдamepbI раСПОlнают только те vcтponcma. кот()рые ПОПЮIЮЧСНЫ непосредственно к НIIМ. Выявление конфлИk'"ТОВ между ра w"lчными УРОВНЯМ"I BIOS может стать наСТОЯЩl1М кошмаром Сложнее все."о "онять то. как происходит выбор устройства. с которою ДОJlЖl13 быть IIрOJпвепена li.lI1JY"JKit. Процесс заrрузки ПК В COBpeMellHblX KOMllblOTCpa'l.: ВJOSlJpOl1JaMMbI "умнее", чем раньше Они позволяют на этапе заrpУJКIf ВХОДИТЬ в режш.i КОНф"lryрирования. удеРЖ"IВ3Я нажатой одну I1Л..1 Две клаВНШJt. Как праВI1ЛО названия этих клавиш отображаются На "Экр3l-Jе. чтобы их не нужно было 11скать в документаШ1l-1" В режш.tе конфиrypщюваН1IЯ МОЖНО выбрать. с K3Koro устройства требуется IIРОИ]ВОП..IТЬ заI1JУ]КУ" Как правило. это ДltСКоВОд д..'1я rиБК1fХ llI-IСКОВ. лервый 10En"cKoBOn COROM иш, перпый жесткий писк 'ОЕ. Нам бы хотелось объясиить вам, Kal\ псе работает, но, к сожалению. это невозможно, так как панная стадия процесса заrpул.,,'}! находится под контролем про-изво .пителей перСОН3!1ЬНЫХ компьютеров н нх мноroЧ"lсленных ВIОSпроrрамм. r rЮ80 2. Зопуск И остонов ccтeMЫ 35 
Они устанав.тrnвают свои собственные правила иrpы. которых прИХОДИТСЯ придерживаться. Korдa компьютер определил, с KBKOro устройства следует заrpужаться, производнтся считыввкие ПСрВЬD< 512ти байтов с дискв. Этот cerMeHT д>,ска известен как i!JIaBНilJ/ заZРУЗ0чная за1lись (rзз). в неЙ содерЖИТСЯ проrpаммв, которая сообшаст компьютеру о том, в какоМ разделе Al-tСка наХОДl-t7СЯ проrpамма вторичной заrpузки (заrpузч"к ОС). Дололн"тельнвя "нформаuил о разделах дисков на персональных компьютерах и rлавной заrpузоtlноi\ записи ПРl-tВОДИТСА в rлаве 8. Стандартная проrpаммв rзз двет компьютеру указание извлечь заrpузчика ОС из первоro разделв диска. Linux и FreeBSD поддерживают более сложные проrpвммы, которые знают, как рвботать с "ссколькими опервuиониымИ системаМJI и ядрами. Коrдв проrpвммв rзз находит раздел, с KOTOporo будет вьrполнснв заrpузка. она пытается запустить заrpузочную проrpамму. связанную с ЭПtМ разделом. В случае успеха этой проrpамме передаются ПОЛНОМОЧl-tЯ по дальнейшей звrpузкс ядрв. LILO: эоrрУЭЧИК Llnux Звrpузчик LI LO неверояпlO сложен и в то же время ужасно бестолков. В нем подnерживается множество возможностей, отсутствующи>\ У nрyrих зarpузчиков, НО нет некоторых элементарных свойств. Зarpузчик LILO входит в состав првктически всех д"стрибутивов Liлuх, включая Red Hat. При первой установке системы I-tнсталляuионные сuенарии создают копию LILO со СТВНдартНhIМИ пара метрам" заrpузки. KaKTO повлиять нв этот процесс нельзя. LILO не так уж необходим для заrpузки Lioux. но это часть системы. Придется науч.иться ее любить... LILO может быть установлен в rлавную заrpузочную заПl-tСЬ диска или в заrpузочную запись KopHeBoro раздела Linux. КОНфl-п),рирование и ИнС7алля ция заrpузчика осушс<:.твляется с ПОfOшью ПРО'lJаммы Шо. которая извлекает параметры конфиryрациИ из файла /еtсflilо.солr Чтобы >t3менить настройки заrpузчика, достаточно отредактировать этот фаЮl J1 110ВТОрНО заПУСПIТЬ проrpвмму Шо. эту процедуру необходимо лроделыввть всякий раз пр" измененИИ проиесса заrpузки  в частносП1. ка.ждыfl РаЗ. коrда добавляется новый 'larpузочный раздел или создается новое ядро. KOl-lфиryрИрОВОl-lив LILO Ниже привсдено содержимое файла lilo.conr lI:JЯ с"стемЫ. в которой имеется рабочее и резервное ядро' boot""/dev/hda root.../ dev /hdal install,../boot/boot .Ь map../boot/map delay-20 r:OMel.Laew. З8rрузЧИК з rзз ., задаем 1(орн:е:вой Dаэдел image-/vmlinuz label-ll.nux readonly image"'/vml inuzbackup l,sbel-backup readonly 2сехундная задержка, дающая пользозателю возможность вы.ешв'!'ься эв:,ружаеыое ядро ыетха. ядра ., реэереное ядро 36 Часть I ОСНОВЫ ОДМИНИСТррОВОНИfl 
Каждому еозможному сценарию заrpузки "азначается метка. Введя метку на этапе заrpузКИ, мОЖНО сооБШ1ПЬ модулю LILO о том, какой из сце"ариев следует выбрать. Тот сценарий, который указан в файле Illo.conr первым, выбирается ПО умолчанию. В стаНдартном сценарии (меткв linu,,) заrpужвстся файл jvmlinuz. Флвr reaQonly указывает на ТО, что ядро монтирует свою файловую систему в режиме "только чтение". Этот флаr должен всеrда присутствовать; стартовые сuенарин позаботятся о ТОМ, чтобы повторно смонтировать раздел в режиме "чтение/запись", коrД8 возникнет такая I-tсобходимость. Система СКО"lф"lry рироваИ8 таким образом, чтобы в случае неудачи заrpузить зервное ядро (файл jvmllлuzЬасkuр). Подобивя возможность является очень удобной. Если запусnпь проrpамму 1110 без BpryMeНТOB, онв создаст и инсталлирует заrpузчпка, сообшив о том, какие ядра доС1)'ПНЬ!. Рядом с названием OCHOBHOro ядра будет отображена звездочкв. При иалич1П! ошибок в файле Illo.conr они не будyr обнаружены до тех пор, покв проuедурв "нсталляции заrpузчика не .nостиrнет середины. Система окажется в переходном состоянии. Не перезаzружаuте ее, пока проrpамма liIо не завершится успешно. Чтобы не попасть в подобную ситуаuию. запускайте nporpaMМY с Qпuией t. которая позвоЛЯет протеСТИРОВ8ТЬ файл. ие ВЫпоЛНЯЯ инсталЛJfUИЮ, Ест-I ошибок не выивлено. можно пере.ходитъ к пропедуре инствлляuии. Честно roвopJf. непонятно, почему проrpaмма 1110 не делает такую проверку автоматически. В нашем случае результаты работы nporpaMMbТ будут вытллпетъ так: 11 li.lo Added liЛJХ'" Added backup При заrpузке системы модуль LI LO выдаст приrлашение следующсrо B..llla: LILO: После пвузы д-wной 2 секунды (парвмC'fJJ delay, рввный (, соответствует 1/10 ce,,')'НlIЫ. в в рассматриваемом файле lIIo.conr он рввен 20) будет заrpуже,1O ядро jvmllnuz и СМОНПlрован первый раздел nepBoro (DEWlCKB в качестве KopHeBoro раздела. СП"IСОК сuенариев ззrpузки можно просмотреть, нажав клввишу <ТаЬ>: LILO: <ТаЬ> llflUX backup LILO: Чтобы заrpУЗ"IТЪ резервное ядро, введите ero метку в строке приrлашения. Заrрузчик FreeBSD MoдyJ1Ъ заrpузки во FreeBSD прост и эффективен. Он разделен на две часпt: одна нахОДИТСЯ в rлавной заrpузочиой записи, а вторая  в корневом разделе FreeBSD. Обе части инсталлируются раздельно. ПервиLfНЫ-И заrpузчик инст.а.лШfРУется с поt.юшью команды bootOcrg НаПР"lмер. команна j bootOcf"g B /dev/."dO помешает перв}ю часть заrpузчика в rзз первоrо I DЕдиска системы. Здесь практически ничеrо не нужно менять (а чаше Bcero это сделать просто r лово 2. Зоnуск 1-1 остонов Cl-1стеМbl 37 
невозможно). Б проuессе заrpУЗКl.1 модуль просматривает список доступных дисков (И3W1екается ИЗ BIOS) 1-1 находИТ разделы. которые, по c:ro мнению, являются зarpузоtJныи.. Перечень разделов отображается в виде небольшоrо меню: Fl F1:"eeBSD F2 W:l.ndows Default: Fl Дополнительную информаUl-1 ю о TOHKOi1 настроике первичноrо заrpУЗЧНКi1 можно получить на стрвниuе интерактинноrо РуководствCt. посвпшенноЙ проrpвмме bootOcrg. Второй модуль непосредственно отвечает за ",rpузку FreeBS D и позволяет пользователю пере.naть ядру дополнительные парзметры. Инсталляuия модуля осущеСТRЛЯется с помощью команды disklabel B. Проrpамма disklabel является достаточно мошной: она обладает множеством опций 1-1 поддерживает почти все дисковые накоml"feЛИ. ВОТ как она обычно вызыпается: *" disk.label B /dev/wdOsl Здесь вторичныft "JЗrpузчю.,: записывается в первыft раздел первоrо IDЕдискв. Параметры конфиryраuии вторичный ззrpузчик ИЗW1екает 1-13 слеДУЮШJ1\ файлов: . /bootfloader.conr . jboot/loader.cOBr.locBI . jboot/deraulls/loBder.conr ПоследН11'Й файл содержит стандартные YCTaHORКJI lаrpузчика и не должеll никоrда МОДl-lфицироваться. Все эти установки можно переопредеЛl-lТЬ с помошью файлов loader.conr 1-1 loader.conf.locaJ. а та...--же ItJ командноft CтpOKJ1 на этапе зsrpузки системы. Информаuию о параiеТрi:LХ заrрузчика вы можете найти на страниuах руководства ЬооЦ8) 11 loader(8). Мультисиcrемная эаrруэка Поскольку на одном персональном компьютере MOтyr работать несКоЛЬКо операUl-lOННЬrx систем. ПрltВЫЧНОН ЯRJlяется опуаuия. коrда компьютер заrpужается в мультисистемном режиме. Чтобы добиться этоrо. необходимо правильно сконфиryрJ1роВ3ТЬ модуль за!lJУЗКИ. позволив ему распознатLo имеющиеся на локалЬНЫХ дисках операuионные системЫ. В каждом разделе диска может располаraться собствеННЬНf вторичныlt заrpузчик. однако rлавная заrpузочная запись TO'1bKO OnHd. Поэтом).' необхо димо решить, какой из заrpУЗЧl-lКОВ будет rлавньrМ. Как правило, выбор диктуется особенностями имеюшихСЯ операuионных систем. Если ОДНОЙ 1-13 иих ЯW1яется lJлuх. то лучше Bcero в качестве rлавноrо J8!lJузчика выбрать LILO. ИСЮlючение составляет случай. коrпа np"cyrcTByeT Windows NT/2000. Заrpузчик этоft оперauионной CI-IС"feмbl вceдa ДО.'IЖfН по,,-tешаться в r зз. Проблемы при мультисиcrемной эаrруэке Орrанизаш1Я мультисистемной заrpузки toЖеТ быть болезненным про иессом. Ниже излаrаеТСJf информаНl-tя. которая позволит вам сберечь множество нервных I01еток. 38 Чость 1. ОСНОВЫ одминистрирования 
Коrда на компьютере с мультисистемнои заrpузкон планируется ycтaHO вить одну из клиентских версий WiлdоW5 195. 98 иш, Ме). это должно быть сделано до тО20, как будyJ I-IНСТаллированы остальные системы. Данные версии Windows СЛНШКОм rлупы и не предполаrают. что на компьютере может быть установлена какаЯНllбудь дрyrая ос. Они всеrда занимают первый раздел nep80ro диска. перезаписывast в проuессе инсталляиии сушествуюшие проrpаммы заrpузки. Аналоrnчное правило при меняется в отношении Windows NT/2000. Wil1dows Bcerna инсталлируется перооft. Причины этоrо MOryт быть разными. .10 результат Bcerna один. Заrpузчик NT /2000 очень хочет инсталлировать себя в rлавную заrpузочную запись и быть Самым rлзвны.. СОПРОПlмение бесполезно. Чтобы заставить этоro заrpузчикв распознавать разделы UNIX, необхо дима предварительно инсталлировать UNLX и заrpузиться С дискеты или комттактдиска. Затем нужно прочитать первые 512 байтов раздела U N IХ (заrpузочный сектор раЗдела) и записаТь их в файл. Это можно сделать с помощью команды dd. Вот пример ее использования в Linux: j C!d i'L=/dev/hda2 o'L=linux.bin Ьв==512 count=l Далее следует скопировать этот файл в раЗдел NT/2000 и добавить в файл конфиryрации заrpузчика NT запись а том, как заrpужаться с использованием данноrо фаnла. Все. по д.Тfя :поrо требуется.  поместитЬ в ф3ltJl C:\boot.ini строку с указанием пyrи к файлу и метки. В случае Liпuх эта строка будет выrлядетъ так; с: \ linux. Ьin....Liлuх.. Дополнительную информаuию О структуре файла boot.ini можно 110ЛУ<JloIТЬ в интерактивной базе знаниЙ на WebY3J1e suppol1.microsoft.com. Еслп Lil1ux " Windows NT/2000 сосущеc-rnуют вместе, заrpузЧИК LILO должен быть инстanлl-lрОван в раздел Linux, так кзк rланная заrpузочная запись уже занята Для этоrо достаточно в файле lilo.conr поместИТЬ 8 пара метр boot ссылку на раздел Linux. Наl1ример. если ОС Linux ИНСТaJUJИрована на втором разделе первоrо I DЕдиска, строка будет иметь следующий вид: boot::/dev/hda2 Это действие должно быть проделано до тО20, как вторичный заrpузчнк будет заПl-lсан 8 файл и скопирован в раздел NT. По сути, весь проuесс должен повторяться каЖдЫЙ раз, Коrда требуется повторный запуск nporpaM мы lilo. Мультисистемное конфиryрИрОВQние LILO Если LILO является rлввны" заrpузчиком (например, иа компьютере установлены системы Linux и Windows 98). начните со cTaндapтHoro процесса конфиrypирования LILO, описанноro выше. Затем 110 мере необходимости можно добавлять записи для друrnх операционных систем в файл /etcj1ilo.conr. Вот как будет выrлядеть запись, пред"азнвченная ДЛЯ заrpузки Windows из переоro раздела Псрвоro IDЕдиска: other; "'" /dev/hdal label :: windows table  /dev/hda r лово 2. Зопуск и остонов сис.темы 39 
Ниже привепен полныЙ текст файла lilo.COBr дJ1Я с..1}'Чая, коrда Windows заrpужается из первоro раЗдела. Lil1ux  из aтoporo, а FreeBSD  из тpeTbero: defaul t .. 1 i!'J.u>o:  ilOt.teDlaew ЗАrрузчи!( в !'ЗЗ nepeoro IDЕписка j 2секундная за.пержка. Дi!Пдi!Я пользова.те:I10 ЕОЭЫО.НОСТЬ выешатьсЯ УNолч:анию заrружаетс L:l'1uX из B'1'oporo раз.nела boot .. / dev /hda del"y - 20 1mage =-- /Ьооt/vm11пuz2.З.41 root - / dev /hda2 1аЬеl :8 l:lnux ree.don1y :.mage ,. /dev /hdal " за::,руЗКi!I Wlndaws из r.epBoro ре.здеr.а li!.be1 "" w.lndows t8ble .. /dev/hda mage '"" /ciеv/hdаЗ  заrрузr<:.а FreeBSD из тре':'ье!'о раздела labe1 - reebsd table - /dev/hda После модификаuии файла 1II0.conr nporpaMMa 1110 должна бытъ вызвана повторно. Не забудьте препварительно выполнить ее в тестовом режиме с ПОМОШЪЮ опuии t. Мультисиcrемное конфиryрировоние FreeBSD 3аrpузчик FreeBSD вcerna пытаетсЯ автоматически обнаружить заrpузоч ные разделы. Но можно саМОСТОЯТС:IЪНО сообщитъ ему о них, восполъзовав шись опцией m маска nporpaMMbI bootOcrg. Параметр _"аека содержит битовую маску разделов, из которых требуется звrpужаться. Первый раздел лрсдстав ляется Д80ИЧНЫМ кодом 0001 (шестнадцвтеричный эквивалент  Охl), второй раздел  кодом 0010 (эквивалент Ох2) и т.д. Налример, команда . bootOcfq B .. Ох1 инсталлирует первичноrо заrpУЗ 1 fИка и сообшает ем)' о ТО", что разделы 1. 2 и 3 являются заrpужаемы"и (Ox7=0111) В "РОllесее 181"рузКli ни э"ране отобраЛfrСЯ \tеню с тремя эле!оо1ент3'\Н1  по Одному ЛJ1Я каждоrо разле.lа. 2.3. Заrpуэка в ОДНО пользовательском режиме в следующих параIJ]афах описываются особенности однопользователъ ской заrpузки 8 каждой ИЗ тестовЫХ операционных систем. Solorls Чтобы прервать проиесс заrpузки и воЙти в ПЗУ на компьютерах Suп. нажмите одновременно ютаВИШl-1 < LI > и <А>. На современных к.павиатурах Sun клавиша <LI > иноrда обозначается ка" <STOP>. ПереЙllЯ в ПЗУ, введите boot s, для Toro чтобы ПрОДОlDК1ПЬ заrpузк:,,/ в ОПНОIlО;1ьзователъском режиме. Если в системе Solaris требуется ЛI.I"ру-зИТЬ альтернативное ядро. необ\:о .димо задать полный путь к YCтpOtkTBY И фаflлу. Имя устройства  JTO длинная заrалочная строки. которую можно увилеть. выполнив команду 15 I по отношению к соответствующему файлу /de v \ 1& l /dev/rdsk./cOtOdOsO lrwxrwxrwx 1 roo't raot 55 .Jan 15 1998 lae.../rdsk/cOtOdOsO . ./ . . !devices/sbus@lf, O/SUNW, fase. 8800000,' .sd@Or о: а. raw 40 ЧОСТь I ОСНОВЫ одминистр",РОВОНИЯ 
Чтобы заrpузитъ ядро, хранпшееся на JIИске в фвйле jkemeljbackllp, нужно ввести следующую комаfЩY: boot /dev1ces/abus@lf,O/SUNW,r_.O.,8800000/sd@O,O:a, raw/1c8rn81/b&ck.up В твбл. 2. J rrеречислен ряд rrолезных комаид, которые можно вводить R режиме конфиrypирования П3У на компьютерах 5110. Таблица 2.1. КОМОНДЫ КОнф",ryРИРОВОI-IfI ПЗУ ДЛIiiI компьютеров Sun probe....1 w . Выполн"емое действие Заrpузкв aпьтepнвrJ<IIНOro JlДPa Заrpузка в О.DJiOnOJlЬЗOватеп:ьском режиме ПсреКDИфИI)'pИроваимс я.дра И поиск НОВЫХ устройств УвеДОМJIсние и.цр.а о необходимости чтения файла j'lc/I)'...m.bak, а не /.Ic/ayat.m Выдача списка nОдкJlЮченных SCS]YC11IORcтв Комондо Ьооl //r)Iт.кФОЙЛУRдРQ bool.a Ьооl T Ьооl a /.tc/l)'lI.m,bak HPUX Проuедура ОДНОПOJlьзователъской зarpузки нв компьютере HPUX зввисит ОТ типа Машины. Приве.аенные ниже сведения ОТНОСЯТСЯ к компьютеру HP 9000Л35, После выда'rи соответствующеro сообщения rrрервите проuесс заrpузки. Появится строка rrриrлвшения. Введите boot p' sl, чтобы отобразить расширенную строку приrлашения. Онв будет выrЛядетъ лримерно твк: ISL> prompt: Следуюшая комвнда выираетT требуемое ядро и заrpужает систему в однопользовательском режиме; ISL> prompt.: hpux 1a Istand/vmul'I.ix Llnux Перейти в однопользовательский режим в Liпиx можно с помощью звrpузчика LILO В строке ПРИl'Лвwения LILO введите метку ядрв, которое требуется заrpузитъ (заданв в файле lIIо.сопl), а затем ОПUию . или II"gJe. Например, стандартное ядро, поставляемое в составе Red Hat, имеет метку "linux", поэтому, чтобы заrpузитъся в одноrrользовательском режиме, необ. ходимо задатъ твкую комвfЩY: LILO: l1nux 8ing18 Заrpузчик LILO понимвет различные опuии комвндной строки (табл. 2.2). т Dблицо 2.2. Примеры ОЛЦий зоrрузчико lllO Оrщия НазнчеН-е .. root-/dev/foo Со06шаст JlДPy о том, ЧТО КОрНСJlЫМ RШUlСТСИ устройство /d..jloo Зl.лglе Зад.ает режим ОДКОЛOJ1Ъ3Oвате:льской 38.rp)'зхи init-/sbin/nit Сообщает ядру пyrь к проrpамме 1011 ether-O, О, echl Заставляст upo осуществить поиск адаптера Ethernc[ 41 r лова 2. Зопуск и ОСТОНО8 системы 
в однопользонательском режиме система Red Hat особенно ЧУВСТlштеЛЫ-f8 к ошибкам. ПреЖде чем ВОЙТИ в ЭТОТ режим. Red Hat пытается выполнить коман.ny rsck и смонтировать все локальные файловые системы, причем практически ни одна из системных команд не J(оmонуется статичеСКl-1 Если в результате ошибок монruрования нужные бибЛI-Ютеки фую..'Uий оказаJШСЬ не ПОДЮlЮченнымJt. динамически компонуемые команды не будут ПЫПОJl няться. Даже баз08ые команды маНИПУЛИР08aJНIЯ ф3luшми, сетеные ТШJlПЫ и текстовые peD.alo..JopbI требуют наШIЧИЯ совместно используемых библиотек ФункuиR. По этой причине работать в ОПНО1l0льзовательском режиме в Red H3t. R общемто. бессмысленно. НеоБХОЛIIМО будет Bcerдa держать пол рукоЙ спасательную заrpузоЧ"ную дискету. Обычно МП решеНl-lЯ незнаllительны\ проблем удобнее заrружаться в режиме подтверждения илн непосредственно со спасательной дискеты. FreeBSD Чтобы перейти в однопользовательский режим. прежде BCCI"O RыбеРl-lте FrееБSD из меню первиЧ"ноro JаrpУЗ'fИка: Fl FreeBSD Defaul t: Fl Затем, получив соответствующее приrлашеНJ1е. прерuите процесс заrpУЗКII и введите boot s: Hit [Enter] to boot immediately, or апу other key for the command prompt _ Booting [kernel] iл 9 seconds... <Проб8Jt> Туре '?' for а list of commands. 'help' for more detailed help. disklsla:> boot 8 Система IlРОДОЛЖI-IТ заrpузку до Toro момента, Korlla потребуется нnести пyrь к командному интерпретатору. Если нажать < El1ler>. будет RЫ1RЗН интерпретатор fbinfsh Вторичный заrpузчик ПОНlfмает Р33Ш1Ч"lIые ОПШfИ командной СТрОКII. Например, чтобы наити и заrpузить альтернативное ядро, вьшОлните С!Jепую щую последовательность команд: dskls1a:> 1. d var d st.and d etc kerne 1. SYNACK kernel. LMC ke rпе 1 disklsl&:> unloAd dsklsla:> load lcerne1.SYNACК disk151a: > boot Здесь демонстрируется, как оператор получает список файлов КОрllевой файловой системы, выrpужвет стандартное ядро (fkcrnel), заrpужает новое ядро (fkernel.SYNACK) и продолжает проuесс заrрузки. 42 Чость 1. Основы одминистрировоня 
2.4. Стартовые сценарии После выхода из интеРЗI<...тивноro режима (ИЛИ при автоматической ззrpУ1КС. KorHa завершает рабо1)' командный интерпретCiТОР. запущеНI'IЫЙ с правами пользователя root) проrpаММ8 init выполняет сиеН8рЮl запуска системы. Они янлmoТСJf сuснзриямИ интерпретатора Bourl1e shell (sh). а их точное местоположение н содержимое J8ВИСЯТ от CIfCTeMbI. Наиболее широко распространены два способа орrанизаЦИJf работы со стартовым..! СllснарI-IЯМJ1. ухоnяшие КОрНЯМJf в историю. В ВSDсистема.'( ЭПI файлы хранятся в каталоrе /etc J1 их "IMeHa наЧl-lнаются с префl-Iкса "rc". В системах семейства System V фаЯ_=1Ы сuенариев располаrаются в каталоrе /etc/illiCd, а ССЫЛКИ на ШfX созданы в к8талоrа:\ jetc/rcU.d, /etc/rcl.d (,1 Т.Д Второй ВЗРI-t8НТ орr3Н1паUlfИ ЯRляется более чеТI-:ИМ 11 по]воляет аКJ..1'р.пнее выполнять остаН08 СlIстемы Ниже привепен перечень ]ацач. которые часто RЫnОЛНЯЮТСJf IfНИUlfaJlIf ззцион.нъrМff сuенаР"IЯМИ: . задание имени компьютера; . установка Ч8С080rо пояса; проверка дисков с ПОfOшью KOMaHДbJ fsck (только в автоматическом режиме); монтиронание системных дисков, . удалН"lе файлов И] К:iталоra /tшр; . КОНфИllfрировзние сетевых плат: запуск проuеССОR!lемонов 11 сетепы'\ служб БОЛЬШ"IНСТВО стартовых сuензрисв ВЫВОДlrr Н::!. l-:оНсОЛЬ подробllУЮ инфорМ3UIIЮ О выполняемых "IМИ 13.дачзх. Это может оказТI:. сушественную помощь при отладке шtи ПО"lске причин зависания в проиессе начально'Й заrpузки. В старых системах нередко IIРИХОПШlОСЬ мо"цифиuировать стартовые сuенарии. чтобы настроить ..1); .DЛЯ конктнои cpeды Сеrодня сuенарин. rюстав.Jlяемые разработчиком системы, ДО:IЖНЫ быть ДОСТdТОч.но оБШИМ"I, чтобы работать в системах любой i'\онфшураuии. Сведен..tя о локальной конфиry.-раШtи системы не ЗiJДаются в СаМОМ сuеНИРlfl-l. а помешаются в отдельный фаИ:1 (ЮН1 набор фаЙ!lОВ). КонфиryраШlOнные файлы. как правило, предстаВЛЯЮI собой неБОЛЬШ"lе сuенарШ-i Bourнe llell. включаемые 8 CTapTO вые сuенарии для получения доступа к некоторым переменным командноro интерпреТ:iтора. Стартовые сценарии в системах семейства System V СеrОДН)l СIlнаРИ1 в стиле System \1 наиболее раСПРОСТР:iнены. Они использ)'ются в тре)( из четыре р:iссматриваемых нами операuионных систем. Мы R первую очередь ОП"lшем оБUDfе ПР"IНUИПЫ запуска системы, а затем пейдем к анаШI1У особенностей конкретных ОС. В CllCTC"-tа.Х ceMeicTвa Systeln \1 nporpaMM3 iпit определяет 7 "уровней BЫ полиепия". IШ каждом 113 которы"). должен RЫПОJIНЯТЬСЯ конкретный набор системны), сервисов Уровень О rOnOpltT о том, -по C"lcTeMa полностыо прекраПlЛа рабо'l)'. Уровень I или S ОJЮlчает однопользовзтельскиЙ режим. . УРОВШ-I 25 предназначены штя мноrопользовательскоrо режима. . УровеllЬ 6 определяет этап перезаrpузки системы. 43 r пова 2. Зоnуск  останов системы 
Уровни О и 6 отличаЮТСfl тем, что система в деЙСТ81нельности н(' может 8 них оставаться. Переход на эти уровни означае.т, что система либо завершает рабmy. либо пере.заrpужается. В мноrополъзователъском реЖ"lме Llаш Bcero установлен уровень выполнеЮlЯ 2 или 3; уровни 4 и j используются peJD(o. УРОВЮI 1 И S различны п.ля каждой систеМЫ. ОДНОПОЛЬЗ0вательскому режиму традиционно соответствует уровень 1. На этом уровне запрещены все мноrополъзовательские сс.э.нсы и проuессы удаленной реrистрации. а в системе выполняется минимальный набор проrpамм. Поскольку в данном режиме дocтyn к C"lcтeMe осушестwтется с правами полъзователя root, администратора.м необходимо. чтобы при заrpузке в таком режиме система выдавала приrлашение lIa ввОд пароля. Для этой uели предназначен уровень s: в нем создается отдельный праиеес. выдаюшиА требуемое притлашение нв экран. В Solaris уровень S является ВПО,lне самостоятельны,' но 8 Linux он НОСJП nереходный характер и завершается сразу после ввода пвраля. Создается впечатление, что уровней выполнеНИJf больше, чем нужно. Обычно ЭТО объясняется тем, ЧТО в телефонном KOMfYТaTope 7 уровней, поэтому в UNLXсистемс ДОЛЖНО быть как минимум столько же. В Red Наl поддерживается до IОти уровней, хотя уровни 79 не опреде.оены. В файле jetejlnltUb содержатся пвраметры, определяюшие. что должна делвть проrpвммв Iлll на каждом из уровней, Формат фай.lа зависит от системы, но основная ..шея состоит в том, что в нем задаются }о:оманды, которые должны бьпь выполнены (или продолжать выполняться), I<оrдз системВ переходит нв конкретный уровень, В проuессе заrpузки проrpамма Inlt последовательно ПрО!lвиrаеТСJf от уровня О к уровню, заданному по умолчанию в файле jelcjlnlllab. Чтобы осуществить переход между соседниМ""И уровнями, проrpЗММ8 illl1 ВЫПО.'1ня('т Команды ИЗ этоro файла. АН8Лоrичные действия I1РОИЗВОДЯТСЯ 8 обратном порJUIКС при осТанове системы. К сожвлеЮlЮ, структура фвйла jetejlnlttab довольно сложна и не Bcerna соrласуется с тем, как на самом деле происходит запуск и останов серВИСОВ в UNIХсистемах. Чтобы сд.елать этот файл более полезным, '\IНОПlе СИСТе'l.IЫ семейства Syslem V ревлизуют дополнительный, абстрактный уровень. Он обычно представлен в виде комвнды, которая запускается из файпа jelcjlnillab и осуществляет смену уровней. На этом уровне выполняются сиенарии ..1] каталОr8, зависяwеrо ОТ целевоro уровня; они перенодят систему в новое состояние. Системным IДминистраторам обыч но нет необходимости рвботать не ЛО средственно с файлом jetcjlnlttab, так как сywествуюшие сиенар"и ЛОJD(ОДЯТ для большинства случаев. Далее в rлаве мы не будем упоминвть этот файл и все те механизмы I которые связывают nporpaMMY '"It со cтapтoBbIM"1 сценариями. Просто Korna мы roворим о том, что проrpаММ8 Inlt выполняет такоЙТО сиенарий, ну.кно nоннмать: связь со сиенаРllем может быть косвенной. Основные копии стартовых сиенарнеп хранятся в каталоrе init.d. Он, в свою очередь, может рвсполаrаться в каталоп /etc. но это не вссrда так. каждый сuе"lарий отвечает за запуск одноrо демона ил"l определснно подсистемы. Сuенария-м можно передавать apf).,.,embl зtаrt и t.Op. которые означают, что соответствуюший сервис должен быть либо запушен, l"lбо остановлен. Большинство сценариев понимают также арrумент rеs'!:В,rt., который эквивалентен связке stор+зtаrt. Обладая правами систе?t.lноrо администратора, можно вручную запускать ини останавпивать отдельные ссрвисы, вызывая нужный сиенврий из катало... Inlt.d и передавая ему требуемый ар!)'"ент. 44 Чость 1. ОСНОВЫ одминистрировония 
Ниже показаН простой сценарий, ПОЗВОnЯЮШИЙ заnyскать, останаалИВ8ТЬ пли перезапускать демон sshd: '! /bin/sh test f /usr/local/sbin/sshd 11 exit О case "$1" in start} echo n "5tar'tlng sshd: sshd" /us!" /loca.l/sbin/ ssho echo stop) echo n "Stopping sshd: sshd" kill .Cilt /var/run/sshd.pid' echo restart I echo n "Stopp1.ng 5shd: sshd" k1.11 .ca.t /varJrun/sshd.pld echo echo n .'Sterting 5shd: sshd" /из}: /local/sbin/ зshd echo ") echo "Usa.ge: letc/init .d/sshd start I st.op I restart" еХl t 1 еsас Чтобы лерейтИ на требуемый уровень, лроrpамма Inil JlOJ1Жна получить 'nОПOJlнительную инфорМ811ИЮ о том, какис Сllенариl'!. и с какиМи арIYМСнтами запускать. Но она не просматри.васт непосредственно J(8талоr Inlt.d, в обрашаетея к КRталоry rеуровеиь.d, rJlС уровень  это номер требуемоrо уроиня иылолнения, к которому осушествляется лереход (reO.d. rcl.d и т.JI.). В каталоrах rcypoвeHb.d обычно со.nержвтся СИМАолические ссылки на Сllенарии в К8талоrе inlt.d. Имена ссылок начинаются с префикса S или К. за КОТОРЫМ идет номер и ИМЯ сервиса, управляемоrо Сllенарием (например. S34named). Есл nporpaMMa init переходит к более АЫСОКОМУ уровню. она вьmолняет все Сllенарии с префиксом S ("start"  заnyск) А порядке возрастания номерОА, причем каждому сценарию передается apryмeнт start. Korna осуществляется перехo.n к более низкому уровню, запускаются сценарии с префиксом К ("kill"  уничтожить) и порЯдке убывания номеров. и все" им лсреJlаетея apryмeнт .top. В зависимости от системы, лроrpамма 1"11 может просматривать только каталоr rcypOBeHb.d, относящийся к целевому уровню, либо Асе каталоrи ив пути от исходноrо к llелевому уровню. Чтобы сообшить системе. котда следует заnyскать ТОТ или иной .nемон. необходимо создать символическую ссылку в соответствуюшем 'К8талоre. В большинстве систем основная часть сетевы); .nемоНОВ запускается на уровне 2. Следующие командЫ информируют систему о том. что демОН sshd .полжен быть запушен на уровне 2 и остановлен при занершении работы системы: :1 ln . l_tc/1n1t.d/..hd /etc/rc2.d/S99..h2 fI l.n . /_tc/1nit.d/..hd /etc/rcO.d/1t2Sa.b2 45 r лово 2. ЗОПУСК .., остонОВ системы 
Первая ссыJOOl rOBopHr о rOM, ЧТО сцснарJПi jetcjiniLdjsshd с.чеnyет запустить в саМОМ конце этап;) перехода На уровень 2 '" передать ему арrумеlП st,a,rt. Вторая ССЫЛКа сообщает. что в процессе завершения работы системы сценарнl't jetcjinit.djsshd должен бьrrъ запушен относнтельно рано, причем с apryмeнтoM stop_ В некоторых системах процессы останова и перезаrрузки трактуются поразНОМУ. поэтому необходимо также помесrnть симвопичеСII:УЮ ссылку в Каталоr /etc/rc6.d. чтобы обеспечить корректный остаНОВ демОна при перезаrpузке сисrеМЫ. Soloris Системы Solaris. HPUX и Red Hal используют сuенариJ..l 8 СТllле System V. которые хранятся R ката:юre iпit.d. В Solaris ЭТОТ каталоr. ка..: и каталоrи rСЯJOвень.d. НЗ,\ОДJПСЯ в Кзталоrе /etc. Раньше стартовые cueHaplOt Solaris обраШaJШСЬ к конфиryраuионным файлам, разбросанным ПО всей системе. ЧТО приlЮДИЛО к невообраlJtМОЙ пyrанице. В после.nних версиях системы КОМПаНИЯ Sll[] устранила болъшин ство проблем. Стартовые сценарии теперь знаЧительно улучшены и бош.шей частью самодостаточны . Некоторые конфнrypацнонные файлы собраны в каталоrе jetcjderaulls (табл. 2.3), однако обшее число настраиваемых парамеТРО8 Не так уж велико. о(,'"т3.льны' файлы попрежнему распределены между ра.зличНЫМJt каТаПОI'ами. Таблица 2.3. Конфиrурационные фаилы стартовых сuенариев Solaris Файл jetcj_UNCONFIGURED Ноэначение Сообшает стартовым сценариям о необходимости nOJl НОС'rью nереконфиrypировать систему (обычно исnол..ь зуется только в npoиессе и.нCТ8.JU1иции) Содержит имя узла, связанное с указанным сетевым интерфейсом (сетевой платой) Сообщает о том, что сетевой интерфейс должеJt быть сконфиrypироlW::l С помошью rlротО.кол.а ОНСР Содержит имя узла 11 адрес cr.Iндартноro lШlюза: /е.tс/Ьostnаmе..интерфейс /еtс/dЬср.Шlтерфейс /etc/defaulb'ouler HPUX в HPUX стартоиые сценаРJtи хранятся в каталorе /sbin/init.d. Каталоrн сJ.lмволичес....их ссылок также находятся и каталоre /sbin. КОtlфиrypauионные файлы размещаются в каталоre jetejrc.eonlig.d. Их нмена соответстяуют именам стартовых сценариев. Например. сценарии /sbin/ini t. d/SnmpМaster измекает КОНфИf)'рационную ннформацию нз файла /etc/rc. conf1q. d/SnmpMaster и иызывается проrpаммой iпit с помощью TaKJtX ссылок: /5bin/rc2. d/SSБОSпmрМаst:еr /5bn/rcl. d/K440SnmpMaster Результаты работы стартовых СllеJшриев сохраняются п ф.1Йле jetcjrc.log. Если ка'Който из сценариеи не CMor выполниться, просмотрите ЭТОТ ф.1Jiл 46 Чость I Основы одминистрировония 
на предмет наличия сообщений об ощиБКaJ< илн друrой информаuии, позволяющей выявить суть проблемы. Зто настолько полезная инесложная в реализации особенность, что просто удивительно. поче't-fY поставщики црyrиx систем Не доrадались сделать нечто по.n.обное. Конфиrypационные файлы MOryr быть сложны для понимания, ХОТЯ ОНИ снабжены хорошими комментариями. В табл. 2.4 оrrисано назначение файлов. KOfopbIe модифиuируются чаще друтих. Тоблицо 2 .4. Конфиrуроционны. фойлы HP-UX (котолоr /etc/rc.conllg.d)  18"" Но,ночени. 11\ SDПфМastеr Вк.точает или ОТКJlJочает поддержку протокола SNMP Sпm,* Друrие параметры. СВЯ38.НJ{ые с протоколом SNMP ассl Включает или отключает подсистему учета процеССО8. СМ. ассй( 1 М) аuditiпg УПРЗВJlЯет работой подснетемы аудита; СМ. 8UdsyS( I М) и aude _eDt(IM) с... Содержит наетроt!xи CDE (Соmmоп Desktop Environmеп!  единая настOJIЬНая среда) clean* desktop ЬрЬ...\ OOco.f hp.lhercDm U.I Шod. Ip шailып, паmesens nddCODf DetCODr пеЫаешопs D.ttl nfsconf pd VI жfо УпраВJlЯет операциями очистки, выполняемыми на этапе заrpузки Определяет, какой из имеюШИХСR рабочих столов бу.nет аыБР8Ji по умолчанию Конфиrypирует устройства F as! Ethernel КОНфИIурирует Etheme(nпaTbl; СМ. laoadmio(IM) Управляет отображением меню стартовой заrpyзки Включает или oтк.rooчaет подсистему буферизации печати Запускает утилиту seDdmal1 или задает почтовый сервер Конфи.rypмрует или запускает д.емои службы имеи Задает параметры мра, устанавливаемые на этапе заrpузки с помощью демона пdd Задает параметры КОНФИJ1lPauии сети (lPaдpec и т_п.) УказЫВaf1 на ТО. какие сетевые д.емОНЫ следует 3аnyстить Коифи.rypирует подсистемы сетевой трассировки и рс:rистрauи.и: СМ. neШ(IМ), nettlcom(lM) и Dett1g.lLconr(4) Задает параметры NFS (NelWork File System  сетевая файловая система) Конфи.rypирует сервис распределенноА печати HPиx Запускает демои wtdaemoD ВКJIJOчает и отключает сервис шрифтов Х Windows Для больщинства эти" файло" вполне подхОДЯТ cTa>mapTHbIe установки. Чаще Bcero модифицируются файлы netconf, netdaemons и, возможно, nddcon[ Red Hat Стартовые сценарии  это то, что отличает ,nистрибyrивы Linu.x .npyr от ,npYI'a. Например, сценаРI{И ОеЫап очень lIапоминают сценарии Solaris. а сценарии Slackware сходны со своими "ро,nственниt<3МИ" во FreeBSD В Red Hat используются rиБри'nныe Сllенарии. сочетаlОЩl1 и себе черты сценарися 47 r nово 2_ Запуск и останов Clктемы 
Sys[em V И FreeBSD плюс еше несколько '.наворотов". нобавленных только IlЛЯ Toro, чтобы сделать жизнь администраторов сложнее. В спснариЯХ Rcd На! достаточна сложно разоБР8'1ЪСЯ, так как в них MOryт присyrствовать комментарии вша . .пура.UICИЙ прием, но должеН рв.СЮ'l'ать или t это неnрв.:вильно! Проrpямма tnl! в Red На! в основном соответствует своему яналоry в Sys!em У. На каждом уровне вЪП!олнения проrpямма вызывает сценариЙ /etc/rc.d/rc, псреllаеая ему номер уровня в качестве apryMcнтa. Этот сценариЙ МОЖeL вьmолияться как в обычном режиме. ТаК И 8 режиме подтверЖдения, в котором перед выполнением каждоro CTapTOBoro Сllенария выдается запрос. Управлятъ символическими ссылками на стартовые сценарии можно с ломошью команды chkconlig. В Red На! имеется также сценарий rc.local, налОlli1НЯЮШИЙ Оllноименный сценарий во FreeBSD. В проuсссс заrpуэки он въmолняется лослеllННМ. Не стоит добавлятъ в Hero собственные команды; лучше воспользоватьсЯ среllСтвами System У. Вот пример сеанса эarpузки в Red На!: [инфориация о ядре) INIT: vеrзiоn 2. 77 bootn9 Welcome to Red Hat Linux Рrезз . 1 I to enter interactve зtаrtuр. Mount1nq proc filesystem Setting c10ck (utc): Fri МВ" 10 07: 16: 41 MST 2000 LOadinq default keymap Act1vatinq swap partit10ns ОК ОК ОК ОК Korдa ПОlffiИТСЯ сообшснис "Wclcomc 10 Red Наl Liлuх", можно иажать клавишу <1>, чтобы продолжить заrpузку в режиме ЛОllтверЖдеиия. Однако подтверЖдение о нажатИИ самоЙ клавИ-ШИ выдано не бу.nет. Red На[ спокойно продолжит монтировать ЛО'КaJ1ьные файловые системы, активизирОвать раз делы диска подкачки, заrpужать таблицы клавиш И весТ11 поиск модулей ядра. Только после перехо.na на уровень 3 проrpамма Ini[ начнет 8Ы.д3ватъ запросЫ: Welcome to Red Hat LinuK Press '1' tO enter interact1 v e startup. Mountinq proc fileeystem ОК Settinq clock (utc): Fri Mar 10 07:16:41 MS'r' 2000 ОК Loadinq default keym.ap оК Activatinq swap partitions ОК Setcinq hostname redhat.synack.net t ОК ) Check1nq root filesystem /dev/hde1: с1ееп. 73355/191616 fйеs. 2145361383032 blocks ОК Remountinq root filesystem in readwri се mode Ок Findinq module dependences Ок Checking filesystems ОК Mountinq local filesystems оК Turn1nq оп user and qroup qиotas for local filesystems ОК Enablinq 8 wa p ерасе ОК INIT: Enterinq runlevel: 3 48 Чость 1. ОСНОВЫ админиСТрИрОВОНИ 
Еnt.еI::l.лq ),n'terac'tive зtаr'tuр Star't serV:l.ce kudz.u (У) еа/ IЮ о/ СС) ont.1nue? (У] Режимы интерaкrивиой и однопользователъской зarpузки начинаются с одноro и Toro же места. Если в процессе зиrpузки вознИКЛИ серьезные проблемы и этой тоЧКИ достичь невозможнО. воспользуйтесь спасательной заrpуз01fНО'А дискетой. Можно передать зarpузчику LILO napaмe'l1J init/bin/sh, чтобы заставить ero вызвать командны'й интерпретатор опнопользовательс коrо режима еше .по TOI'O. ка'К будет запущена ПрОтр8.М'МО ini(. В ЭТОМ случае нсе действий по звnyску системы прядется промзводмть вручную. включая выполнение проrpаммы rsck и монтирование локальных фОЙЛО8ЫХ систем. Повлиmъ на процесс заrpузки в Red На! можно путеМ МОДИФИК8uнJ..I КОНфНI)'P8Uионных фаl\л08, расположенных в катало'" /еtс/sysсо"Пg. Прин uипы работы с ними такие же, каК и с фойламя в каталOfe /etc/rc.config.d в HP UX, хотя СВIo\IIX файлов меньше, а опциЯ в них больше (табл. 2.5). фО(I/ПОДlCотоnоr _рт" Тоблица 2.5. Фойлы и ПОДICОТQлоrи t:.оталоrQ /etcjsyвconflg в Red Hot clock console bwtonf 118" ЫI teyboanl mowe ""twork пеtwоn'.хrtptl рсшс1а ...dmaП н e. или со ежимое СnИCQК вptyИСНТО8 .пл. демона rIQДСИстеы.ы АРМ (Advanced PQwer Man.qemeDt  расширенное упрамекие питанием) Залает тип системиых часов (почти Bcerдa trrC) Заraдоl.(НblЙ ха.талоr, который вcerдa П)'ст ВКJUOчаст всю и.нфориauию о системноМ оборудовании; ис ПOJlblустся сервисом Kudzu Содержит реrиокальиые устан.оВJCИ сис:темы (формат представ пения даты/времени, ЯЗЫК и т.д.) ОпредtJUlСТ, как отоброаются сообwения, ПOC1)'I1вюшие от стартовых сuеиарИС8 Зап.ает тип клавиа'l)'pЫ (используйте Идентифихвтор -115" JL7UI cтa.ндaJ1l1'!oR 10 1 клавишноR хпавиа1УР Ы ) Залает тип мыши: испоJIb3УeтcJI системой Х Windows и nроrpаммой IPm Задает rпобa.ru.кые сетевые опции (I04JI узла, 1.WlI03, марWpyrи З8.UИA И TJI,.) Каталоr, в котором содержатся вспомоraтельные сuснари..и и сетевые КОИФЮУР&цИОНИЫС: файлы Сообшвет, c.nслуст JDt запускать ,"ионы РСМСlA, и содержит иеоБХОдИЫЫС опuии Залает naраметры Д1UI yrилиты ICDdmall Некоторые элементы списка заслуживают дополнительных комментариев: Файл hwconf просматривается сервисом Kudzu, который npоверяет, было Л1I добавлено или удалено КJlJ(оенибудь устройство, и запрашивает У пользователя .noполнителънь:rе инстрyкuии. В промъrwлеЮfЪtx системвх Однюкды в нашей системе был поврежден фай.'1, содержаwий таблиuy клавиш, и ПОСКО.1ЬКУ система Red На! заIl'уж&Ла ЭТОТ фай.'1ll8Же в однопользоватсльск.ом режиме, дaHH режим ока:J8J1СЯ бесполезным. Передача заrpyзчИ1СУ парамe-rp8. Inlt..Jbln/lh оказалось единствеННЫМ способом зarpуэить систему в безопасном состоянии и исправить ошибку- r 11080 2. ЗОnУСI( и OCТOI"OB системы 49 
этот сервис можно деаКТИБИровать. поскольку он сильно задерживает процесс заrpузки. КaждhlЙ раз, Korna обнаРУ.А<ивается изменение аппа ратной конфиryрации. возникает залержка в 30 с. . Каталоr network-scripts содержит 8СПОМOI'ательные файлы. связанные с сетевой конфиrypаl.{Ией. Все. что может потребоваться 8 нем изменить.  это файлы с "менами irсrguнтерфейс. Например, файл ne[Work scripts/ircrgethO включает параметры ПlаТЫ с идентификатороr-.! ethO. в частности ее lPaдpec. О конФшурироваНllИ сетевых плат рассказЫВilется в лаР3ll'афе 13.10. . Файл sendma сонержит нве переменные: DAEMON и QlJEUE. EcJ110l пере менная DAEMON равна yes. система запустит yrи.mпу se8dmail в лроцессе заrpузки. Псременная QUEUE информирует утилиту scяdmаil о том, сколько времени после возникновения ошиБКJI сообшеЮlе должно находиться в очереди. прежде чем будет пре1IЛрИНЯТ8 поrrьпха повторной отправки, FreeBSD Представленная ниже информация касается FreeBSD. но общие ПРИНU"'1 пы орrанизаl.{ИИ стартовых сценариев применимы ко всем BSDCHcTeMaM. Проrpамма iпit 80 FreeBSD выполняет только один. ,'лавныи сценариЙ  /etc/rc. Он, в свою очерель. запускает остальные Сllенарии. которые расположены в каталоrе /etc и носят имена вида rС.U:\fЯ. Сценарии запускаются в определенном порядке. а КОНIIепЦИЯ уровней выполнения не поддержива ется. Сценарий /etc/rc начинает свою работу с 8ЫПОЛ..lения трех сценариев. определяющих конфиryрauИОНJ-IУЮ информаuию: / etcjderaults/rc.conf . jetc/rc.conr е /etcjrc.conr.local В этих файлах задаются друrие каталоrи. в которых необходимо искатЬ стартовые сценарии (имена каТ8.Jюrов заносятся в переменную local.star tup). Кроме Toro, в ни>. опренеляется ряд леременных интерпретатора shell, используемых последующи,П! сценариями. Сценарий /etc/rc применяет комаму source (точнее. ее орип{налъньrй псевдонИМ' . '), чтобы преобра..l0вать конфиryраl1ионные и все последующие Сllенарии в единый поток въmолнения Эта процедура включает в себя конкаТенаuию файлов в один большой Сl1енарий. Файл /etc/dcraults/rc.conr содержит оrpомныи перечеllЪ всеХ конфиryра- ционных параметров и ИХ стан.о.артных значений. [ro нельзя редактировать. Если требуется изменИть Jначение кзкойлибо переменной, просто переоп ределитс ее в файлах /etc/rc.conr и /etc/rc.conr.local. На страннцах интерак тивноrо руковонства, посвященНЪ!Л файлу /etc/rc, npиведен исчерпыяающий список переменных, которые можно менять. Зarлянув в каталоr /etc. вы можете обнаружить в нем MHora различныХ сценариев: , 111 /etc/rc* re rc. di5klessl rc. atm re. d5kle5s2 rc.conf rc.firewall rс.iЗВб rC.network rC.1sdn rc .local rc.ser1al rc. shutdown re. pccard се. сеsите rc.devfs сс. susрелd 50 Часть 1. ОСНОВЫ администрировония 
Если япро сконфиryрировано как беЗДИСJ<:ОRыk клиент. в первую очереДl. вызывается сценарий rC4disklcssl. Затем вызываютс,.1 сценарии rc.sysctl, rC4serial, rC4pccard и rС4псtwоrk, после чеrо сuенарий /etc/rc перехo.nит к вьmолненИю служебных функuий. В качестве завершаюшеro аю<орда запус кается сценарий rc.local. Если какоЙТО сценарии не определеи, он просто npoпускается (в ПРИDеденном выше списке сценарий rc.sysctl отсутствует). Стандартный сценарий rc.serial ЮfЧеro не делает. а лищь определяет набор функций. которые пОЗВОЛЯЮТ иниuиализировать последовательные порты и устройства на этапе заrpузки. Если в одном из файлов rc.eonf задана поддержка интерфейсов PCMCIA/CardBus. сценарий rc.pccard заrpужаe-r модули ядра, связанные с КО1iТpOллером PCMCIA. и запускает немон pccardd, упрамяющий динамиче ским конфиryрироваIOlем устройств PCMClA по мере их подключения и отключения. Сценарий rc.network инициализирует сетевую среду компьютера. Он использует переменные. опpe.nеленные в файлах rc.conf, ДЛЯ КОНфИJ)'рI1РОВЗ IOIя сетевых интерфейсов, протоколов ОНСР и РРР, маршрyrnзаторов и брандмауэров. Редактировать этот сценарий нет необхопимости. так как БСС параметры содержатся 8 файлах rc.conf. Он вызывает дpyrne сетевые стартовые сценарии; rc.atm, rсJsdп и rc.firewall. Для конфиrypирования ceтeBoro интерфейса во FreeBSD предназначеНhI три переменные; hostname. defaultrouter и ifconfigu"т tf!Ie uнт  ИМЯ интерфейсноrо устрОЙL'"ТВ3). Переменная ifсоnf1gШlт полжна coдep жать строку опций, передаваемых коман.де ifcorlfig при инициализаии-и устройства. Например, в строках сценария hostname"my. fullyqиall.fied .narne" ifconfiqdeO""'''1net 192.168.1.2 netmask Oy.ffffffOO" defaиltI:outeI:" 192 .168 .1.1" узлу назначается 1 Paдpec 192.168.1.2 и задается стаИдартный адрес шлюза 192.168.1.1. ЕСЛ>l данное IIнтерфейсное устройство должно конфитурироваться JIИНaм>lчсски по протоколу ОНСР, задайте строку след)'ющеrо вида: ifconfig deO""'DHCP" Сервер ОНСР автоматически назначит узлу rpaдpec. доменное имя и маршрyr по )'Молчанию. 2.5. Перезаrpузка и OcrOHOB сиcrемы UNIХсистемы хранят буферы изменений в памятИ '" лишь изред'Ка записЫВают их на диск. Это ускоряет выполнение операций писковоrо B80дaBЫOOдa. но также нелает систему более подверженной потерям данных в случае внезапных зависаний. Раньше UNIХсистемы были очень щепетильны о ОТНОШНJ.П( ПРШlедуры ВЫКJ1ючения. Современные системы более терпимы. но псе же по возмож ности лучше кoppeкnio завершать работу. Неправильное выклюЧ'ение системы может привести к появлению труднообиаружиnаемых. неочеВИ)1НЫХ ошибок. а ИНОfда и к полному краху. Перезаrpузка операционной системы на персоналъном компьютере  средство решения поЧТ>l всех лроблсм. Но при работе в UNfX советуем снаЧала ПОllумать и только потом перезarpужаться. Проблемы, возникающие в этой системе. как правило, скрытые R сложные, поэтому перезаrpузка дает r лово 2. Зоnуо: и останов системы 51 
ожинаемый результат rоразло реже. чем в цpymx системах. Кроме Toro. процесс перезаrpузки UNIX звнимает больше времени, что создаст неунобства для пользователей. ПереЗ8тружаться необходимо в том случае, KorHB ПОJIК..1'Jючается новое устройство или рвБОТRюшее устройство зависает тик. что ero невозможно сброситъ. Если МОНИфШlируется файл конфиrypацни. который используется только при начальной заrpузке. то изменения вступят в силу лишь после перезаrpузки. И H3KOHeu, если систему "заклинило" таК. что в ней НевозмоЖНО зареrистрироваТЬСJ1. иноrо выхола. кроме k:aK перезаrpУJИТЬСЯ. просто не сушествует. В отличие от начальной зarpузки. которая осymестВJТЯется однимедин cTBeHным способом. ОСТанов и перезаrpузку сиcrеыы можно выполнить поразному: выключить питание; . пать команду shutdown, исполъзоватъ команды halt и reboot (в ВSDсистемах и Linux); послать протрамме Inlt сиrнал TERM; изменить уровень выполнения проrpаммы init с помошью комаНlIЫ telinit (в системах семейства Syslern V); . унпчтожитъ процесс inlt. Выключение питания Даже в небольщих UNLXсистемах такой способ останова неприемлем. Он может лри-вести не только 'к потере панных и повреЖдению системных файлов. Вы рискуете испортить писковод, если он относится к числу тех, На которых перед отключением питания необходимо установить в соответствую щее положение заn.mтный переI01ючатель либо произвести парковку rоловок. В некоторых компьютерах (например, НеwleпРасkаrd) присутствует КНОПКа праrpаммноrо ОС'Танова, при нажатии которой ВЫПШ'lняется ряд команд. осушествляющих корректное завершение работы системы. Если вы не уверены, поддерживает ли ваш компьютер такую возюжность, не нажимайте кнопку выключения питания в процессе раБо1ы1 системы. Бупет меньше проблсм, если остановить систему вручную. Конечно, в случае наводнения или пожара лучше отключить питание, если вы не успеявете корректно остановить систему. В машинных запах и сейчас иноrпа встречается аварийная Юiоп'Ка, которая позволяет вьrключить все 050рунование одновременно. Команда shutdown: корректный способ останова системы Комвнна shutdown  самый безопасный н наиболее корректный способ остановить иля перезаrpузить систему либо вернуться в однолользовательский режим. К сожалению. трудно найти постs.вшика, который бы "не приложил руку" к ее apIYМeнтaм. Мы рассмотрим эту комаину в обшсм, а затем привсдем сводку синтаксиса и арryмеитов. которые приrодятся при работе в ка'Койлибо из ОПИСLrВаемых систем. Можно .пап кома..нле shutdown указание делать паузу переп остановом системы. Во время ожинания команна ПОСЫЛает зореrистрированным поль зователям через постепенно укорачива.юшиеся промежутки яремени сообше иия, предупрежпая их о приближающемся останове. По умолчанию 8 52 Часть I ОСНОВЫ ОДМИНИСТРИРОВОния 
сообщениЯХ rоворится о том, что система заканчивает работу. и указывается время, оставшееся до останова. При желании a.Ilминиcrратор может побавить собственное короткое сообщение, В котором поясняется, почему система останавливается и сколько примерно временп придется подождать, прежде чем пользователи ВНОВЬ CMOryт ВОЙТИ В систему. Мноrие версии командЫ shutdown позволяют задать, 'сто конкретно должна сд.елать система: остановиться. перейти в однопользовательский режим или переза'l'УЗИТЪСЯ' ИНОl'да можно таюке ухазать, необходимо ли после псрезarpузки проверитъ ДИСКИ с помошью команды rsck. в современных системах с большими дисками такая проверка займет мното времени, поэтому в общем случае ее можно не вьmолнlIТЪ, если работа системы была перед этим корректно завершеиа. В некоторых системах этап проверки дмскоН автоматически проттускаеТСЯ 1 ссл,", файловые систеМЫ были правильно демонтированы. В твбл, 2.6 перечислсны aPIYМeнты KOMaIU!НO!! строки командЫ shutdown для шеС"Т'"И рассматриваемых с,",стем. П рочерк означает вариант по умолчанию. т обnицо 2.6. Мноrоnи ко. комОНДО shuldcwn СИСТ'Вмо Путевое ИМЯ Поузо П 1 О в Без Isck SoIaria /UI1'/IЫп/ohutdоwn 8C01C)'Нaы t6 .10 .18 HPUX /еtс/ohuldowп ,,,,,унаы r b Red На\ /Iыn/ьutdowп .р..... , b r F",.BSD /IЫО/lЬutdOWП +....нуты , b I n  переэa.rpУЗК8, О  OCT8JtOB, В  ВХОД В однопользовательски.й режим. Комонда halt: балее простоЙ способ останова Команда halt вЫПОЛНJIет все основные операции, необходимые для 0С1'8НОва системы. Чтобы вызвать эту lCoMaнny, моЖНО в командной строке ухазать shutdown -Ь или непосредственно halt. Команда halt реrистрирует в журнальном фаl\ле событие оствиова, уничтожает несущественные процессы, выполняет lCoMaнny synс (она. В свою очерeJIЬ. осуществляет системный вызов synс), дожидается завершения операци!! дисковой записи, а затем прскрашает работу ядра. При указании коман.n.ы halt -о системный ВЫЗОВ synс подавляется. Эта команда используется после восстановления KopHeBoro раздела командой rsck. чтобы ядро Не моrло затереть исправления старымИ версиями раздела, хранящимиСЯ в кэше. Команда haJt q инициирует почти немедленный останов без синхронизации, уничтожения процессов и реmстрsu"и собы'тия. Флвr q исполъзуетея редко. Комонда reboot: быстрый перезапуск Команда reboot поЧТИ идентична команде haJt. Разница заключается в том, чro система перезаrpужается, а не останавливается. Режим перезаrpузки вызывается также комаНlIОЙ shutdown -r. Помимо этоro. команда shutdown поддерживает флаrn -п и q. r лово 2. Запуск и остонов с....стеМы 53 
Передача проrpамме init сиrнала TERM Результаты уничтожения nporpaMMbI iпil непре,nсказуемы '" в БОЛЬШИI-tCТRе случаев очень вредны. Перед тем как посылать этой nporpaMMe каКОЙЛI...бо СllfНал, обрапrrесь к .nокументauии. Коrда ВSDверсия nporpaMMbI init получает сиrнал TERM. она обычно уничтожает Все ПОЛhЗовательские процессы, демоны, процессы getty и переводит систему в ОдНОПОЛhЗователь ский режим. То же самое .nелает комзJ-Щa shutdown. ДЛЯ Toro чтобы послать процессу сиrнал. нужно с ПОМОЩЬЮ команды ps узнать идентификатор этоrо процесс-а. ПроrpаММR init  ЭТО 8cerдa прошсс номер один. С целью отправки сиrnала ВОСПОJIbЗуйт«ь КОМ31tд.ой kШ; . вynс i .ync , kHl Т&RМ 1 0' Подробная иНфоР'Аацил о СUi!налах u команде k i 11 привеоена в zлаве 4. Комонда telinit: изменение уровня выполнения праrраммы init В системах, rne nporpамма iпi[ поддерживает несколько УРО8неН "ьrпол нения. можно с помощью команды tеliпit дать проrpамме указание переЙТII на конхретный уровень. Например. команда , tel1.ni.t S лсреводит систему в однопользовательсю1l1 режим в Solaris и HPUX В Red На! необходимо ухазать J, а не S, нначе будет залущен иитерпретатор shell с правами пользователя root, а сам }'ровенъ изменен Не будет: telini. t 1 То же самое можно с.nелатъ с помощью команды .Ьutd.о1fП i.l которая. поМИмо Bcero прочеrо, может ВЫДать предупреж.пающее сообщение и сделать неболъшую паузу перед переходом на новый уровень. КомаlШа tеliпit наиболее полезНа при проверке изменений. внесенных в файл iпittaЬ. При наличии флаrа -q Команда заставJ.П Проrpамму iпit повторно лрочитать зтот файл. Уничтожение процесса init Проuесс iпit настолько важен IUlЯ работы системы, что еСШ1 ero уничтожить с помощью команды kill  KILL ИЛИ kill 9. то большинетво СИСТt'М автоматически перезаrpУJИТСЯ (некоторые ядра при этом просто АыпзlОТ сообщение о панике  фатальной ошнбке). Это очень "rpубыЙ" сrlOсоб перезarpузки. Лучше Пользоваться комаlШами shutdown и rehoot 54 Часть 1. Основы одмиl-tL1СТР"'РОВQНИЯ 
з Сила привилеrий Каждый файл и процесс R UNIX принадлежат определенном)' полыoа телю. Не имея соответствующих при8иле....ий. друrl1С пользователи не MOIyr получить доступ к чужим объектам. Подобная схема ПОJВОЛЯет защитить полъзователе дрyr ОТ друта и предотвраппь иесаНКЦИОНllрованный доступ. случайный или злонамеренный. Системнымн фаЙлами и пронессамн нладеет фи}..-тивныЙ ПОЛhЗопатель root. известны также как суперпОJlыователь. Все ero ресурсы l"ып-еЖНQ ззщ-ишены ОТ ВМешателЬСТВа. Чтобы иметь возможность UЫПОJlНЯТЬ anМИНИ страти-БНblе зада'LИ. необходимо зареrнстрироозться 8 системе как суперrrОЛh З0взтелъ. о чем и по'Й.nет речь в настояшей fлаве_ СynерПQЛЬ30В3Телъ обладает нескоЛblo.."ИМИ "волшебными" возможностями. В частности, ОН имеет право BЫC1YТl3ТЪ в роли владеJIьuа lIюбоrо файла или проuесса fJ выполюrrь действия, недоступные рядовым пользователям. Привилеrированный пользователь  очень ответственная должность, а в руках новичка или злоумышленника  очень опасиая. В этон rлаве рассматриваются основы ПРИВllлеrированноrо ДОСТУП8 к системе_ О том. как предотвратить несанкционироваНllыti поступ на УрО8не сynерполъзователя. рассказывается м rлапе 21. В rлаnе 27 описьшаютси политические и администраnlВные аспекты этоrо Ilроuессз. 3.1. Владение файлами и процессами Каждый файл в UNIX принадлежит владельпу и rpуппе. Владелеu файла имеет ТОЛЪКО одну привилеrию. которая друrl1М пользователям системы недоступна: ему разрешено изменять права Постуllа к файлу. В чаСТНОСТ't. нла.д-елец может установить права доступа так, что никто, кроме Hero. не сможет обращаться К данному фалу._ Мы еше вернемся к теме прав д.оступа в rлаве 5. OO_lee Toro. можно сд.елать так. ЧТО фай;] станет ICHOC1YflHbIM даже ДЛЯ влanеlbt{а_ r лово з. Сило привлеrий 55 
Владслеu фвйлв  это вcerдa один человек. В rpynny MOJyf входить несколы<о пользоввтелей. Сведения о rpyrmax хранятся в фвйле /elc/group. 0' Дополнительная инфор.чацWl о ZpY'lflax приведена в пар(Jрафе 6.1. Вла.пелец файла определяет, какие операпии MOryr ВЫПОЛНЯТЬ им. файлом члены rpyтmbJ. Такая схема допускает коллеКТИвное исполъзование фаАлов членами од.ной rpУППЬJ. Узнать о ТОМ. кому ПРИНадЛежит файл, можно с ПОМОЩЬЮ команды 15 ' имяфаi1/1Q. Напрнмр: , 1. l l.taf'f'/8CQtt/tod.o "'W] scot.'t 5t.aff 1258 Jun ., lB:lS /staff/scott/todo Несложно заметить. ЧТО влаа.ельнсм файла является ПOJJЪЗоватслъ "5C01t". а rpуппа, которой ои ПрИН8..lIЛежит, называется "statr'. UNIX ОТслеживает не символьные имена влa.nельuем и rpynп. 8 их идентифm:аторы. Идентифm:аторы лользователей (сокрашенно UlО  User 10) и соответствующие им нменВ хранятся в файле /elc/passwd, а идентифи каторы и имена rpyrm (GIO  Group 10)  в файле /elc/group". Символьные экмие8Ленты ПрИС88Иваются идентификаторам ИСКЛЮЧительно для удобства пользователей снстемы. Чтобы команда вроде Is моrла BbIвecnt: информацию о ПРИН8..lIЛежностн файла в упоБОЧИТ8МОМ виде, она должна просмотреть базу данных и.nентификаторов н найти в ней нужные нмена. Что касается проuессов, то с ними связано не два, 8 четыре идеНiИфИ катора: реальный и эффективНblЙ полъзоввтельскиI! (UIO). а таюке реальный и эффективный rpупповой (ОIO). Реальные номера применяются ДЛЯ учета испопъэова.кия системных расурсов, 8 эффективНblС  для определения прав доступа. Как правило. реальные и эффективные ИlIентификаторы совпадаюТ. Влаа.елец процессв может посылать ему сиzналы (см. параrpаф 4.3). а также понижать приоритет процеСС8. В прннuипе, проuесс не может ЯВно изменить ни одноro из своих четырех идентификаторов, но есть одна особая ситуация, KOf1l2 происходит косвенная устаномка новых эффективных идентификаторов Дело в том, что сушествуют ДВВ слеuи8ЛЬНЫХ бита, устаНВВЛИ88емьrx в мвске прав доступа к файлу: S UI о (Sel User ID  бит смены идеНТИфИJ<аторв ПОЛЬЗО88теля) и SGID (Sel Group 10  бит смены идентификвтора rpупnы). Korna ПОЛЬЗО88тель или лроuесс запускает исполняемый фал, у KOToporo установлен ОДнн из этих битов, файлу временно назначаются права ero влаа.ельца или rpyrmbJ (В зввиснмости от TOro, какой именно бнт lадаJl). Таким образом. пользователь может даже запускать файлы1 от нмени суперполъзователя. Бит SUID позволяет обьrчным пользователям мыполнятъ nporpaMMы. осушествляюшие 8.ltМ11н:истративные действия или обрашзюшиеся к снетеме на низком уровне. Это не мызывает проблем безопасности. так как авторы nporpaWof ",есттсо реrламеmируют их работу. Например, команда pBsswd. с помощью которой пользователь меняет свой паролъ, должна обрвшаться к файлу /er.:/passwd. лрннадле",ашему сynерПОЛЬЗО88телю. Вследствие этоrо у нее установлен бит SUIO. Она модифиuирует файл CTporo определенным образом и завершает работу. Конечно, даже столь простое действие МОЖСт стать причиной злоynотреблений. поэтому. прежпе чем выпОЛнЯТЬ запраши ваемые и]менеН1iЯ. команда passwd проверяет, знает ли пользователь СВоЙ текуши-й паролъ. в некоторых системах -па ИНфоРМ8НИЯ БО.lьше не хранится 8 ТС:КСТОВОМ формате (см rлаау 18) 56 Чость 1_ Oc.....OB администрирования 
3.2. Суперпользоватвль Определяюшей характr.ристикой УЧТНО записи супеРПОЛЬЗОВЗRЛЯ ЯВJlЯ ется значение UID. равное О. LI:'>JIX не запрещат менять ИМИ этой учетноЙ записи или создавать прутую запись с нулевым ипентификаТОРО"1. НО Т3К1lе действия НИ к чему хорошему не при ведут. Их с.'Тед.СТ811ем будет ВОЗНИI.::НО вение новых брешей в системе З8ШIПЫ. а также растерянность J.РУУИХ ПО"Jьзователе, которым припется разбираться с осо&нностя...ш КОНфИr)"РИ РОВ8ЮfЯ такой системы. UNIX позволяет привилеrированному ПОЛЬ-ЗОВ8Телю (т.е. всякому проис су, у KOTOporo эффективныfl ндентификатор ПО'1ьзов.ате.1Я равен О) ВЫПОЛН)IТЪ нМ фамом или проuессом любую ПОПУСТИМУЮ операuию.. Кроме TOro. некоторые снстеМНЫе вызовы (обрашения к ядру) может осушествлять ТО J 1ЬКО суnерполъзователъ. Вот при меры операuи, постjтlных лишь супрполыова телю: . измененИе корневОТО каТ8Лоra проиесса с помощью команды cllroot. создание файлов YCтpOCТB; установка системных часов; увличение ЛИМИТОВ использования ресурсов If П08ышеНlft IlplfOpl1Te 108 "роиессов; . зan.ание ceTeBoro нени систе\lЫ: . конфитурирование ceTeBblX интерфейсов: останом системы. Проuессы супеРПО;1ьзома'IЯ об.1адают способвостью изменять СВЩ1 идеНТНфИ1<8ТОрЫ. Один из таких процессов  это проrpамма logill. которая выдает притлашение ввести пвроль при входе 8 систему Если BBeHCI"lIIbJe паролъ и имя попьзоиателя ПРЗВII:IЬНЫ. то nporpa.MM<\ li\меНяеТ C'80I идентификаторы соотвеТСТn\'ЮШИМJI ИДСIIТ1fфикаrорами yt<al3HHoro IIOJlbJOBa ТI:.1Я и запускает ннп:рпретатор КО\llIНД. ПОС.lе 101.0 как проuесс с}перIЮilЬ. зователя. изменив свою ПРИНадЛl:ЖНОСТЬ, станет оБЫЧНIМ ПОЛЬЗОВ<l.теЛЬ"':КН\1 процессом, восстановить свое предыдwееe приюrлсr.ИРОВdнное СОСТОЯI-IНI: он не сможет. 3.3. Пароль суперпользователя Пароль полъзователя root д.олжен состоять "-.1'" МIН-ШМУМ 10 ВОСЬ\fИ символов; сеМИСИМВО.1ьные паро-тш взламываК)1СЯ ДОСfal.ОЧIIO леп.::о. В иеко торы'\( системах задавать более .D..IlfННЫЙ паРU.IЬ не ш",еет С!\.1ысла, потом\ что обрабатываются тол-ько перные восемь СИМЕЮ.lО8. 0' Подробнее о вЗЛО.J,fе паРО.1ей l.tuтaiJтe в zлаве 2/ Паролъ суперПОJlьзоваП:lIЯ Сlедует выбllрать так, чтобы ero ltе'IЬ3Я б....ло определить методом перебора. Теоретически наlfБОlее беЗОП.iСНЫfl паро.1Ь состоит из случайной послеДОВJ.П:.IЬНОСТIf букв. знаКО8 ПРСПИll3НИЯ If uифр TaKO пароль, однако. тяже'"ю запомнить И, как праВIЛО, тр)ЛlIO вводить. Поэтому. если систе'l.fIIЫЙ МИlII",сrр.пор )апн,-ывает пароль I-С'Ш вводит ero слншко\{ мелленно, об ОПТИ-М(lОТЬНОМ pOBHe беЗОlli3СНОСТII СlIстемы rоворпть не ПРI1ХОДИТСЯ. Обр;питl:' ИНИJ\.131'lие на СЛОВо .'ДОЛlИ\iУЮ". Helo-оторbJе операUШJ (Н.Шрllмер. запускфайлз, 'n"'lЯ KOToporo не установ.lен бит I:IЫПО.lIiСIIШI} "Llпрешены даже сперПО.1ЬЗО8JТс:.lI0. r лово З. Сило привилеrий 57 
До немвнето времени достаточно надежным и удобным для запоминания считапся пароль. состоящий из двух случайно мыбранных спов, разделенных знаком препинания. К сожалению. теперь такие пироли взламываются очень быстро. н мы ие рекомендуем НХ применять. Сеroдня наибольшее распространение ПОЛУ(IИЛ подход, заключаюшийся в выборе фразы по прннuипy "шокирующеro абсурда". Этот ПРИНЩffi был определен rради Уордом (Grady Ward) в paHHe версии FАQдокумента. посвящеююro выбору идеНПlфикаllИОННО фразы для PG Р: Прultциll "шокирующеzо абсурда" заключается в составлении короткой фразы (или предложения), которая лишена смысла и в то же время вызывает шок }' пОЛhЗователя в данной "ультурной среде. То есть о"а дОЛЖllа содер.жать совершенно lIепрuли l /ные или расистские высказывания либо состоять из абсолютно не стыкующuxся между собой выражений. Прu_ценять такой подход не пpeaocyдume.'lbHO, поскольку подразумевается. что пароль нш.:'Оlда не стаНет известен ЛlOдя..w, чьи чувства мосут быть U}r' оскорблены. Маловероятно, чтобы под06IlЫЙ пароль был повторен Ke.мтo еще, так как Оll Уllи"о.лен по своей сути. При этом он леzк.о запоминается, "отому чmо uweem яркую эмоциональнуlO окраску. Сдержанный пример шокиРУlOщеzо абсурда выzлядит так; 'М()JlJlюски отzрызли .ши lаРЧУlOщие енитшши" Любоu читатель без труда придумает zораздо более шокирующие фразы_ Сократить фразу до мосьмн символов можно, записав только первые буквы К3ЖДоrо слова или применив какоенибудь лруrое пerкo запоминаю- щееся преобразование. Безопасность пароля значительно мозрастет. еспн включить в Hero цифры. знаки препинания и ПРОП1fсные буквы (некоторые системы теперь 'ЭТоrо требуют). Пароль привилеrированноro пользона.теля следует менять: . минимум раз в три месяuа; · каж.п.ыl% раз. KOrдa ктолибо. знаюший пароль, увольняется из ваше орraнизаuии; коrда, по вашему МНению, безопасность системы поставлена под yrpозу: если вы планируете провесПI вечер так бурно, что на следуюшее утро рискуете не вспомнить пароль. З.4. Как стать суперпользователем Поскольку пользона.тель root ЯШ1яется таЮfМ же членом системы, как и дрyrnе ПОЛЬЗ0матели. можно войти в систему непосредственно IIОД этим именем. Однако оказывается. что это достаточно иеудачное решение. ВопервbIX. не будет сделано никаких записей о том, какие действия выполнял суперПОЛЬЗ0ватель. Соrласитесь, не слншкомто приятно выясюпь, ЧТО вчера ночью в 3:00 вы сделали чтото не так. но никак не можете вспомнить. что нменно_ Еше хуже, если тако", доступ был неавторизованиым и необходимо понять. какой ущерб сиcrеме нанес нарушитель. Bonтopыx. сценариЙ реrистрац-ии суперпользователя не предnолarает сбора ннкакой друroй идентифицируюше"А информацин. Коrда под именем root в систему MOryт входить несколъко пользователей. не существует способа определить. k.IO из НИХ и коrда ЭТО сделал. По этим причинам м большинстве систем реrистрация под именем root запрещена на терминалах и по сети. т.е. везде. кроме системной консолн. Мы рекомеощуем лридерживаться дaннoro правила (см. параrpаф 2].6. в 58 Чость 1. ОСНОВЬ! одминистрировонt.1Я 
котором рассказывается. какие CHCTMНhle файлы потребуется дЛя :поro отредактировать) . Команда su: замена идентификатора пользовател Лучше воспользоваться командой 5О. Будучи вызванной без apryMcHTOB, она выдаст приrлашение на ввод пароля сynерПОЛblователя, а затем запустит командный интерпретатор с правами пользователя root. Интерпретатор будет выПОЛНЯТЬСЯ 8 привилеrированном режиме. пока не завершит рабmy (по команде exit или при нажатии клавиш <ControlD». Команда SU не фнксирует дествия. выполняемые R среде Иlперпретзтора. но добавляет запись в журнальНЫЙ файл. ннформирующую о том. КТО и KorHa ROшел в снстему под паролем суперпользователя. Команда 5U способна также подставлять вместо имени root нмена дрyrих пользователей. И ноrда единственны способ реШИ1'Ь проблему полъзова теля  воти С помощью команды su в ero среду. Зна.я чеилибо параль, можно непосредственно зареrистрнроваться в системе под ето именем, выполнив команду su uмяпОЛЬ30вателя. В одних системах параль пользователя root позволяет реrистрироваться с помощьЮ команд su или login под любым именем, а в дрyrиx сначала нужно стать суперлолъзователем. воспользовавшисЬ комаНдОЙ 5U. а затем с по",юшью этой же комаlШbl перейти в ДРyrjю учетную запись. Рекомендуем взять за правнло прн вводе команды использовать полное путевое имя. например jbin/su ИЛИ /Bsrjbin/su. а не просто ... Это в какойто мере зашитит вас ОТ тех проrpамм с именем su. которые преднамеренно были прописаны в переменной РАТН злоумышленником, намеревавlШfМСЯ "co брать хороший урожай" паролей. Во мноПfX снетемах выполнять комаtЩY su имеют праRO только члены rpyпnы wlleel. Проrрамма sudo: оrраниченный вариант команды su Поскольку полномочия приnилеrированноro пользователя распределить нельзя. трудно предоставить КШ'fYто право вьmолнятъ конкретную операuию (например. СОЗдание резервных копий), не давая возможности свободной работы в системе. Если же учетная заm1СЬ root доступна целой rpyтme 3.JThiИНJ.fстраторов. ТО вы и понятия не будете "меть о том. к-то ею пользуется и что он при этом делает. Предлаrаемое нами решение заключается в НСПОЛЪЗОВdН1fIi nporpaMMbI sudo, которая в настояшее время распространяется Томом Миллером (он является одним из соавторов настоящей кннrи). Проrpамму можно получить на WеЬузле www.сош1еsап.соm. Протрамма sudo в качестве арryмента принимает командную СТРОКУ, которая подлежит выполнению с правами пользователя root (или Hpyroro уполномоченноrо пользователя). Проrpамма обрашается к файлу jetc/sudoers. содержащему список пользователей. имеюших разрешение на ее выполнение, и перечень команд. которые они MOryт использовать на конкретной машине. Если предлаraемая команда разрешена. проrpа1\.lМа sudo прнrлашает пользо вателя ввести f!ZO собственll.ЫU пвраль и выполняет команду от имени сynерпользователя. До истечения ПЯТИМИнyfноrо периода бездействия (ero продолжитель HOCTh можно менять) проrpзмма sudo позволяет выполнять дрyrие команды. r лово з. СИl10 привилеrl-tЙ 59 
не вводя пароля. Такая мера  зашита от тех привилеrированных пользома толей, которые бросают свои терминалы без присмотр". Проrpзмма sudo ведет файл реrистраUJП1 выполненных команд и вывав ших ИХ пользователей. а также каталоrов. из которых запускалисъ команды. и времени их вызова. эта информаuия может реrистрироваться с помоШЬЮ снстемы syslog "ли размещаться в любом журналъном файле по усмотренню пользователя. Мы рекомеНдУем напрамитъ ее на "безопасную" uентралъную машину. Строка фвйла реrnстр"ции, содержашвя двиные опользоватоле r"ndy, который выполнил команду jbln/cBt etc/sudoers, может выrлядетъ следуюши м образом: Оес 1 10:51:19 ti9ger sudo: randy: TTY-=ttурО TTY-ttурО; PWD=/ti9ger/users/randy; USEH==root; COММAND-/bin!ca.t letc!sudoers Файл /etc/sudoers сушествует в единственном варианте и используется на всех компьютерах. Ои вытлЯДИТ примерно так: . ОnределяеN лсевдоиИWbl .DЛЯ KOUnblDTepHoro и фИЗИЧ8СIC:оrо факультеТО8 HostAlias CS" ti9чеr, anchor. piper, moet, sigi HostAlias PHYSICS" ерriлсе, ppxnce, icaruB # определ.яеw наеор команд СmndА-liаs OUМP'" /usr!sbin!durnp. /usr/sbin!restore СmndА-1iаs PRINTING" !usr!sbin/lpc, !usr/sbin/lprm СmлdJ,l1а" SНELL5  /bin/.h, /bin/tc"h, /bin/c"h , Прl!l:8а ДОС'l'упа ml1rk, ed PHYSICS ;а ALL herb CS ... !usr/loclIlJbn/tcpdump PH':{SICS - (operaor) DUMP lynd .ALL .. (A-LL) ALL, ! SHELLS \wheel ALL, ! PHYSICS - NOP.ASSWD: PRINTING Первые пять незакомментнрованных строК определяют набор комnьюте ров и команд, на которые осушествляются ссылхи в спепификauиях прав ДОС1УПа. Списки элементов можно вК1DOчатъ в спеuификации в полном виде, но работать с псевдонимами проще, к тому же они делают файл sudoers понятнее. и ето nеТ'Че будет обновлЯТЬ в будущем. Разрешается также соз.п:аватъ псевдонимЫ для различных rpупл пользователей. В каждую спеuификвцию прав доступа включается следуюшая информация; пользователи. ]с которым относится даНJolRЯ запись; . компьютеры, на которых пользователям разрешено МЫПQJlНЯТЬ какието действия; . команды. которые MOryr выполняться ПОЛЬЗ0вателям-и; пользователи, ОТ имеЮf которых MOryт выполняться команпы. Первая строка спеuифнкапий применяется к пользователям Пlаrk и ed. реrnстрируюшимся в системе на компьютерах rpynпы PHYSICS (ерппсе, ррппсе и Icarus). Вcrpоенный псевдонпм ALL разрешает им вьmолнять любые команДЫ. Поскольку дополнительный списоК пользователей в скобках не указан, проrpамма sudo будет выполнять команды толъко от имени полъзо вателя root. Пользователь herb может выполнять команду tcpdump на машинах rpynпы CS, а также комаНдЫ оперативноrо контроля на компьютера-..: rpуппы 60 Чость 1. Основы ОДМИНИСТРИРОВОНИJl 
PHYSICS. Звметьте. олнвко, IfТO вторая rpYnn8 команд в 118HHOM случае будет иметь привилеrин не полыователя root, а пользователя operator. Реальная команда, которую пришлось бы вВести пользователю herb, выrJ1ЯДИт примерно так; , 8udo y operator /u8r/8bin/dwtrp Ои /dev/rзdО. ПОЛЪЗ0ватeJJЪ Iynda имеет право Выполнять команды от имени любоro пользоваТeJТЯ на любой машине. но не может запусх.атъ некоторые распро страненныс командные икrерnpетаторы. Означает ли это. что она не может залустить интерnpе1'8ТОр. будучи сynерполъзователем? Конечно, нет: , ер p /btn/e.h /tЛJp/е.Ь , 8udo / tznp/ С8Ь Вообще rО80ря, попьrтка разрешить "все команды, кроме..... обречена на провм. по крайней мере с RХJfИ'Ческой ТО\fXИ зрения. Тем не менее, имеет смысл создавать фаАл sudоеп в таком ВИДе. так как ЭТО послужит хотя бы напоминанием о том, что вызывать команднЫЙ интерпретатор в режиме сynеРПОЛЬЗО8аТеля Не рекомендуется, и предотвратит случайные попытки "ызова В последней строке пользователям uNIхrpynпы whee/ разрешается выполнять KOM8.Н.дbl печати Ipc и Iprm от имени сynерпользовв.теля на всех компьютерах. за исключением машин rpynпы PHYSICS. Более Toro, от НИХ не требуется вводить лароль. Обрвтите вНИМание нв то, ЧТО комвнды В фвl\ле /elc/sudoers даются с полными путевыми именами. чтобы пользователи не моrли выполнять свой собственные nporpaMMы и сценарии от именн суперполъзователя. Разрешается также указывать ДОП)'С11iмые aprYMembJ для каждой команды. Вообше. ВОзможности файла sudoers очень велики, а показанный пример иллюстрирует лишь основные из них. Для моnификаuии файла /etcjsudoers предназначена специальная команда vlsudo. Она лроверяет, не редактируется ли файл KeMTO дJJYfИМ, затем открывает ero в редакторе. а перед инсталляцией файла 8ьmолняет синтак сический контроль. Последнее действие особенно важно, поскольку ошибка 8 файле sudoers может не по]воmпъ повторно вызвать nporpaммy sudo для ее исправления. Использование проrpamfы sudo имеет следующие преимущества: блаrодаря реrистраuии команд значительно повышается степень контроля над системой; операторы MOryт выполнять рутинные lЗД8LIИ, не имея неоrpаниченных привилеrnй; настоЯD.IКй пароль суперпользователя знают Bcero оДинлма ..,елоиека; · вызывать nporpaммy sudo быстрее, чем ВЫnолюrrь кочанду su или входить в систему под нменем root; · у пользователя можно отобрать привилеrии без изменения пароля сynерПОЛЬЗОВ8Теля, ведется СПИСоl<: всех пользователей с правами пользователя root · меньше вероятность Toro. что интерпретатор команд, запушенный сynерполъзователем. приведет к непреДСl<:8Зуемым последствиям; · управлять доступом КО всей сети можно с помощью одноro файла r nово з. Сило nривилеrий 61 
У nporpaMMbI есть и свои недостатки. Самый большой из них заключается в том. что любая брешь в системе безопасности таТО или иноrо привилеrи рованноrо пользователя эквивалентна нарушению защиты самоЙ учетноЙ записи root. Противостоять этому нелеrко. Можно лишь предупредить тех, кто имеет право выполнять nporpaммy sudo, о необходимости зашиш3тЬ СВОI1 учеТНblе записи так. как если бы они были сynерпользовзтелями. Дрyrо недостаток  это возмоЖность обманyrь проrpаmfУ slldo с помощью таких уловок, как време,.rnыи выход в komaHllI-IbI интерпретаТОJ) И3 разрешенной проrpзммы 1Ли выполнение команд sudo csll юrи sudo SIJ, еслн ОИ11 попустимы. 3.5. Друrие псевдопольэователи Пользователь с нменем root  единственный. кто имеет для ядра UNIX особый статус. Есть, однако. еще нескольКО неперсонифицнруеМЪ1Х per1-lСТ рацИОННЫХ имен, которые используются ДJ1я системных uелеЙ. Пароли этих псевдопользователей в файле /etc/passwd обычно заменяЮт звездочко. чтобы нельзя было войти в систему под их именем. Влоделец непривилеrированных системных проrрамм: dаеmоп Учетиая запись daemon. как правило, имеет идентификатор пользователя, равный 1. Файлы н проиессы, которые должны ПРШlадЛежать оnераШЮIIНОИ системе. а не конкретному пользователю, часто назначаютсЯ данноЙ У'.lетной записи, а не полкюватеЛю root, чтобы уменьшить УI""})ОЗУ безопасности системы. Имеется также UNIXrpynna с имен('.м daemol1. которая создаетСfl по аllалоrинЫМ причинам. Владелец системных команд: Ып в некоторых системах пользователь Ып является владельuем большинства снстеМНЫХ команд. а тaК--JКe каталоrОR, в которых они хранятся. Назиаченне О'Тдельноrо пОЛЫОRЗтеля для ЭТИХ uеле часто считается избыточным (и паже небезопаСI-lЫМ). поэтому в современных системах соотвеТСТ8УЮШУЮ роль берет на себя пользователь root. Владелец образов дpa и памяти: sys в HCKOТC.1J)hD< снстемах пользователь sys влал.ест спеuиальными файлаМIf. такими как /devjkmem, jdev/mem " /dev/drum нт, jdev/swap. которые содержат образы aдpecHoro пространства ядра, фнзической памяти снстемы и файла подкачки соотиетСТRенно. Доступ к 'ЭТИМ файлам имеют лишь НСМНОПlе проrpаммы, и все они изменяюТ эффеКТIi"ВНЫЙ идентификатор пользоватеЛЯ И8 5У5. И HorHa вместо пользовате.ля sys создается трvnпа kmem или sys. Общий сетевой пользоватепь: поЬоdу В БОЛЬШJ.rнстве версий UNIX определяется пользователь 1I0bQd' с идеllтификатором  1 или <!. РазрабоТ'--lИКН Solaris выбрали 11деНТИФIIкатор 60001 (слеДУIOШIiЙ идентификатор 60002 назначается спеLlНальному nоль]о ватслю noaccess). 62 Чость 1. ОСНОВЫ администРИрОВОНИЯ 
o Сетеnая файловая система  NFS (Nelwork File System)  ислолыует учетную запись nobody для nредстав..чения сynерполъзователе в друrИJi системах. Чтобы лишить супеРПОJ1ьзователей их ИСЮJючнтельных прав при доступе к удаленным машинам, N FS ДОJIжна заменить нулевой идентификатор чеМТО д-рутим. Этой uели как раз и служит учетная запись nobod)'. Дополнительная uнфор."'ОЦUЯ об учетной записи поЬod}' приведена в пapa рафе П./. Пользователю nobody не нуА<ны специальные права доступа. и он не должен владеть никакими файламн. Сетевая фаЙловая система использует ЭТО средство для зашиты файловых серверов в сетях. rHe 6езднсковые ютиеНТЫ МОТУТ пере.зarpужатъся в олнополъзавательском режиме всеt.fИ. КТО имеет физический доступ к НИМ. С правами пользователя nobod)' работают и некоторые демоны, например fingerd. Идентификаторы пользователей  это короткие uелые числа. следова тельно. значение -1 бул.ет представлено как 32767_ В алroритмах определения следуюшеro доcтynноro идентификатора, которые используются мноrими проrpаммами adduser, это не учитывается. 
4 Управление процессами \ ..... npouecc  это абстракuия, при меняемая в UNIX дЛЯ описания 8ыполняюше"'ся nporp8MMbJ. Это системный объект, посредством Koтoporo МОЖliО контролировать обрашения nporpaMMbI к памяти. ПРОl[ессору и ресурсам ввопаВЫ801lа. Коннеnuия, соrласно которой как можно БО.1ьше работы д.ОЛЖнО выполняться В контексте проuессов. а не в ядре, является частью философии UN1X. Она []ронизывает все системные команды UNIX Системные и пользовательские проuессы пОДЧИНЯЮТСЯ ОДНИМ и тем же пр8ВИJI8М, блаrодаря чему ynрав.l"Jение имИ осушествляется с помощью одних и тех же комаНд. 4.1. Компоненты процесса npouecc состоит И] aдpeCHoro пространства н набора сТру....'Тур д.анныХ. содержашихся внутри ядра Адресное пространство f1редстав..1яет собой совокупность страНИLl памяти.. которые ядро выпелК10 для UЫпО.lнеюtя проиесса. В Hero заrружается код пронесса и ИСПО.1ьзуемые им библиотеки ФУНКllИЙ. переменные, стек и различная вспомоrатс:льная информаuшr. необходимая ядру во время рвботы лроцесса. Поскольку в UNIX лоддер"''' вается концепция виртуально памяти, страниuы aдpecHoro пространства процесса в конкретный момент времени MOryт либо на.'юпиться в физическо памяти неликом ИЛИ частично, либо вообше отсутствовать там. В структурах данных Ядра хранится раз.1ИЧНая информация О каждом пронессе. К наиболее важным сведениям относятся: . таблина распределения памяти процесса; текушнй ста1УС проuесса (неактивен. приостановлен, выпО.'1няется и т.п.); . приоритет 8ыполнення пронесса; информация о ресурсах, которые ИСПОЛЬЗУЮТСЯ проиессом; \t8СКЗ сиrналов про цесса (запись о ТОМ, какие сиrнarrы блокируются); Страницы  это базовые б.10КИ памяти размером. как ПравИЛО. от I по 8 Кб. 64 Чость 1. OCHOBbl ОДМИНИСТрИРОВОН"'1f1 
. идентификатор ВЛ!\дeJlbца процессв. В традиционных UNlXсистем8Х процесс также отслеживает. 1<8кме инструкции центральны npоцессор выполняет от ero имени. В ряде современных систем код "роцесса может выПОЛНЯТЬСЯ несколькимИ .'проиес серами" (реальными или имитируемыми. в зависимости от 1<онфю)'рашfИ системы). При ЭТОМ информаuия О каждом контексте выполнениЯ содержится в объсnе, называемом 1I0токоМ. Т.оретически два потока MOтyr управляться системным плвнировшиком совершенно независимо , даже будучи частью O.JIНoro проиеСС8. На праКТИ1<е библиотекв потоковых функций, распространяемвя большинством поставши КОВ, не поддерживает такую возможность. Почти все 38lI8ЧИ планирования решаются на уровне проиессов, поэтому MHoronOToxoBoe проrpаммирование ие особо звботит системных !\дминистрвторов. ' Мноrие хара.ктеристихи процесса непосредственно влияют на ero ВЫПОЛ нснис. Имеет значение, СКОЛЬКО времени выделяется этому проиессу иeH тральным npоцессором, к каким файлвм он имеет доступ и Т.д. В следуюших пврarpвфах мы рвесмотрим нвиболее интересные с точl<и зрения системноrо 8.JIМинистраторв хаРВkТериCТИl(И процессов. Они ПОд!Iержнввются во всех версиях UNIX. Идентификатор працесса (РID) Каждому иовому процессу. созданному ядром, присваивается уникальны идентификатор (Process 10, PIO). Большинство комвнд и снстемных вызовов, работаюших с процессами. требуют указания KOHKpcTHOro идентификатора, чтобы был ясен контекст операиии. Идентификационные номера присваива ются процессам по поря.nку по мере их создания. Korдa номера 38каНЧ1ПIа ЮТСЯ. ЯlIpO сбрасывает счетчик в единиuy и снова нвчинаеТ присваиватЬ их по порядку. пропуская те идентификаторы, которые еше исполъзуются. Идентификатор родительскоrо процесса (РРID) в UNIX нет CHcтeMHoro вызова, KOTOpьrA создавал бы новый процесс дпя выполнения конкретной nporpSMMbl. Вместо этоrо сушествуюшнй прошсс должен КЛQНИРОвать сам себя, чтобы породить новый процесс. Путь, по которому осуществляется клон, может отличаться от пути выполнения породившеro ero процесса. Исходны процесс в термииолопП! UNJX называЮТ родительским, а cro клон  ПОрОЖIlенным или дочерним. Помимо собствеиноro идентификвтора. к8жды процесс имеет втрибyr PPJO (Parenl Proce.. 10), который равен идентификвтору родителъскоro процесса, породившеro дaHHЫ процесс.. Идентификатор пользователя (UID) и эффективный идентификатор пользовотеля (EUID) UlО (User 'О)  это идентификатор пользователя, создавшеro дaHHЫ процесс, ИЛИ, точнее, это копия значения EUI D родителъскоrо процесса. Вносить изменения в процесс MO ТОЛЬКО ero создатель (владелец) '" пользователь root. По крайней мере, первоначaJIЪНО. Если родитсльскиR процесс по KaKoATO ПрИ4ине пре кращает работу, nporpaMмa init (проиесс номер 1) подстзвляет себя на Место предка (си. лаpaI])аф 4.2). r лова 4. УПрОВЛ81-'1ив процессомlo1 65 
 Детальная информация об идентификаторах пользователя I1риведеuй в lIa раzрафе 6./. ЕШО (Effective User IО)  это "эффективный" ПОЛъзовательскнй идентификатор процесса. Он используется для TOro. чтобы определить. к каким ресурсам и файлам у процесс. есть право достула в данный конкретный момент. У большинства процессов значения UID и EUID будyr одинаКОIJЫМН Исключение Составляют проrpаммы с установленным битом смены ИД(:НПI фикатора пользователя (SUID). Зачем нужны два идентнфикатора? Просто ПОТОМУ. ЧТО имеет смысл разrpаничитъ ПОНЯТИЯ персонификаини и прав доступа. ПроrpаММ8, у KOTopoti установлен бwт SUID. не ncerдa хочеТ ВЫПОЛНЯТЬСЯ с расширенными привилеrиями. В большинстве систем значение EUID МОЖНО устанавлнRCПЬ и сбрасывать, чтобы предоставить процессу llополнительные ПОЛНОМОЧНJI или отобрать их. Идентификотор rpYnnbl (GID) и эффективный идеНТI1фикатар rpYnnbl (EGID) GID (Group 'О)  зто идентификатор rpуплы, к которой ОТIЮСlfТСЯ владелец процесса. Эффективный нлеНТИфНК8ТОр rpуплы (Effective Group 10. EGID) связан с атрибyrом GID так же. КаК значение Еl1IО  с UID Если проиесс попытается обратиться к файлу. который ему не принадлежнт. sщро автоматически проверlП, МОЖНО ли предостапить проиессу соответствующне разрешения на основании зффективноro идентификатора rpyппы..  Дополнительную информацию о zpyппa:x вы найдете в парazрафе 6./. В некоторых сИстемах процесс одиоnpеменно может ОТНОСИТЬСЯ 1( несколъким rpуппвм. В '>Том случ8С атрибуты GID " EGID преДСТ8R!1ЯЮТ собо списки идеmификаторов [pyтm. Если Пользователь пытается получить доступ к каКОМУ1ТИбо ресурсу. весь список проверяется на предмет Toro. принадлежит ли этот пользователь к [pyтme. члены которой имеют право использовать данный ресурс. Приаритет и значение nice от Приоритета npouecca завнсИi. какую долю времени uентралЫlOrо процессора ОН получит. Ядро применяет динамический алropитм назна'Iения приоритетов. учитывающий, С1(ОЛЬКО времени цеН1l'8ЛЪНОro процессорii уже использовал процесс и сколько временн ОН ожидает своей очереди. Кроме тoro. учитывается заданный адМИнистратипным nyreм так называемый фактор ycтYIlивocти (устанавливается с помошью командЫ nice). опредсляюшнЙ. R KaKO cтenellli nporpaMM8 может "делиться" проиессором с дрyrими nporpaM мами. Чем пыше ЗНачение nice. тем '.устуттчпвее" nporpaMM8. ПОllробl-lсе эТоТ механизм рассматривается n параrpафе 4.6. Управляющий терминал Большинство процессов имеют спязанный с ними упраШlЯЮШИН терми нал. Он определяет базовую конфиl)'pацию станлартных канало. ввод.1, вывода и ошибок Korдa пользователь вводит какуюлибо команду в интерпретаторе shell. ero терминал, как правRЛО. становится управляющим 66 Чость I ОСНОВЫ ОДМИНИСТрL1рО80I-iИЯ 
тер",mналом проиесса. От управляющеro терминала также заПJ..lсит рзспреде леНJ..Iе сиrна..тюВ. О чем пойдет речь в парarрафе 4.3. 4.2. Жизненный цикл процессо Для СОJдаНIIЯ Honoro npoHecca сушеСТВУЮШlf11 npouecc I010Н11рует C3Moro себя с помошью системноru НЫЗОR3 rork Результзтом является IЮ-'Iучеюtс копии исходноro npol1ecca, Itмеюшей лишь tleKOTOpbIe отличия. В частности. нопому проuессу прис"аива.ется В08ЫЙ 11деНТИФJiкатор. и учет ресурсов ведется ЛJlЯ Hera ...еЗ8ВНСИМО от предка. Снстемный пызоп fork оБЛ3дilет уникальным своЙством: он возпришает сразу два значеНJ..IЯ. В ПОРОЖJlенном процессе эта функuия noзиращает О. а n родительском  идеmификатор потомка. Поскольку в остальном процессы идентичны. они должны IlрОнерятъ это значение, чтобы опредеЛJrrb, в какоЙ роли следует выступать дальше. После выпо.тn-rения системноrо вызова fork новый процесс обычно запускает ноную IJросрамму С ПОt.ЮШЬЮ OHHoro IП системных вызовов семеЙСТffiI схсс. Все ВЫЗОВbI семейства ехес ПрОИЗ80ДЛТ прнБЛИЗltтелыю одинзконые деЙст"ня: ОНИ .tмешают cerмeHT кода проuеСС8 11 устанаВЛНR3ЮТ cerMemLI дзнных и стека в исходное СОСТОЯlUlе. Формы пызопов ехес отлнчаются ТОЛЬКо способамн )"ка.lания aplJMemon командная строки If переменных среды, передаваемых ноной проrpамме. Коrда снстема заrpужается, ядро самостоятельно создает несколько проиеСС08. Наиболее пзжt1ЫЙ из ННХ  праиеес init, идентифнкатор KOToporo всеrда равен 1. ПроrpаММ8 init отвечает за ВЫЗОВ командноrа интерпретаТОрit для выполнения стартовых сиенариеп. если они используются в системе. Все npoцессы. кроме тех. что создаются ядром. являютея потомками проuесса init. 0" Подробная иUфОРЯЙI(U11 о нйч.а.'ЫIОЙ зйzрузке ' де...,оне j лi t приведенй в ZЛQве 2. Проrpамма init иrpает и друryю важную роль в управлении проuессами. Korna процесс lавершаетея, он пьпыаетT ФУНКlIИЮ exitO. чтобы уведомить ядра о своей rотовности прекратить работу. В качестве параметра функшtll exitO передается "од зйверщения  целое число, УК8Jыва.ЮlUее на прн'шну останова процесеа. По соr.'18шению нулевой код запершения означает, что праиеес ОкОНЧЮlея успешно. В UNIX требуется. чтобы, преЖде чем npoueec ОКОН'Iательно исчезнет. СТО ул,але......е было подтверждено родительским проиессом с помошью cHCTeMHora ПЬПОR3 wait. Данная ФУНКlI1'Iя возвращает кад запершения потомка н, если требуется. статистнку нспользования реСурС08. По этой причине ядро llОЛЖНО хранить f(ад завершения. пока родительский проиесс не запросит ero. 110 ОКОНЧ311ИИ дочернеrо проuесса ero алресное простра",ство освоБОЖд3ется, время uентралъноrа "роиессора ему ...е выпеляется. однако n таБЛl1uе процессов ядра сохраняется запнсь о нем. Проuесс в этом состоянии называетсЯ Jо.\lбu Опнсанный мехаНIПМ работает нормально, если рО.'lительскин "роиесс занершается позже порождеНIIЫХ им npoueccon и добросовестно пыполняет системные ВЫ30АЬ! wait для Toro. '-побы все проuессы-зомбlf были уни'поже ны Еслн же родительский проuссс lанершается 11epHы.. то ядро ПОIOlмает, 'ITO вьповн wai[ не послдует. и пере назначает все проuессызомб... nporpaMMe На саМОМ деш все ш-ш. Кро\.!С OAHoro, являются бltб.Т'IиотеЧНblМИ фунКшlяМ.... r пава 4. Управление процессоми 67 
i.nit. Она обязана принять I.осиротевшис" процессы и ликвидироваTh их. осушествив ДЛЯ каждоro из ЭТИХ процессов вызов walt. Раньше npоrpвмма Inlt не BCCfдa выполняла свои обязанностн как следует и зомби оставались а системе. В последнее время, однако, подобнъrx проблем мы не замечали. 4.3. Сиrналы  СиrнaлЬJ  это запросы иа лрерЫllaIOlе на уровне процессов. В UNIX определено свыше тридuати различных снrnвлов, J..I онИ находЯт самое разное применеиие: . сИТн8ЛЫ MOryr посылаться от ОДноro прош:сса к дрyrому как средстпо межзадачноro взаимодействия; . ситнaлЬJ MOryт посылаться драйВером терминала для уничтожения ИЛИ Т1риостанова проиессов, коrда пользователь нажимасТ спеuивлъмые ком- бииации клавиш, такие как <СолtrоlС> и <СОЛlrоlZ>.; . сиrналъt MOryr посылаться пользователем ИЛJ.I allМИIOlстратором С помо ШЬЮ команДЫ klll; . сиrnaлЪJ MOryr посылаться ядрам, коrда процесс выполняет нелеraльную инстрyкuию. например деление нв ноЛЬ. Котда поступает сиrнал. возможен один из двух вариантов рВЗUИТШI событий. Если процесс Иl\3начил данному снrналу подлроrpамму обрабОТК1l, то оиа вызывается, и ей предоставляется информаuия о конте:ксте. в котором был сreнерирован сиrнвл. В противном случае я.цро выполняет от имеl-lИ процесса действия, определенные по умолчвнию. Эти действия разли'ПJЫ для разных сиrналов. Миоrие ситналы лриводят к завершению работы процесса. а в некоторых случаях при этом еше выполняется дамп оператИl!НОЙ памЯТJ..I Дамп памятu  это фййл, содержащий образ памяти процесса; eZfJ .можно ис",ользовать для целей отладки. Проuе.nypy вызова обработчика НВЗЫl!аюТ "'epexвamo.'t4 сиrнала. KorD.l.I выполнение обработчика завершается, проиесс возобновляется с той ТОIIКИ. rдe был получеи сиrнlIJТ, Чтобы сиrнв..,ы не постynаЛl в проrpимму, можно указать, что 01111 должны иrнорироватьсЯ или блокироваться. Иrнорируемый сиrнал npOCTU пропускается и ие оказывает I-Ia процесс никакоro влияния, Блокируемыi l ситнал ставится в очередь на обработку, но ядро не требует от лроцесс" никаких действий до явиоrо разблокирования ситнала. Обработчик nы]ыШl- ется для разблокированноro сиrнала только одии раз, даже если в течеНIIС периода блокировки поступило несколько таких сиrнвлов, В табл. 4.1 перечмслены сиrнвлы. представляющие интерес шя систем- HOro администратоРВ. Традиционно имена сиrналов зоnисываются ПрОП1lС ными буквами. В проrpаммах на языке С к именаМ добавляется прсфию..: SIG (нвпример. SIGHUP). ФуНКUИJ..l, связанные с этими комбинаuиями к.1авиш, MOryт назначаться лр)'rим К.1iiIШШ;I'\1 с ПОМОllibЮ команды stty, 1-10 иа практике такое с.qyчиется ОЧСl-lЬ редко. В этой rл:ш(' "'11.1 подразумеваем. что с паниыми клавишами связаны их стандарТl-lbIе функшш. ДОПОЛНlпе:1I.- ную Иl-lформацию можно получить в пара.rpпфе 7,10. 68 Часть 1. ОСНОВЫ аD,министрИр080НИ 
Таблto1ца 4.1. Сиrнопы, которые допжны быть а.1звестны каждому администратору Na Имя Оп",соние Реокцн" по Перехваты Бпокиpye-roo? Домп . у Мапча......ю 8Qется памяти 1 HUP Отбой ЗввеРШСЮlе да да НС'Т 2 INT Преры- Завершение Да Да НС'Т ваиие QUП Выход Завершение Да Да Да KILL Уни\fТO ЗавершеIOtе НС'Т Нет Нет жен.ие BUS Ошибка на Завершение Да Да Да шине SEGV Ошибка Завершеюu: да Да Да cerмeH тauии IS TERM nporpaM Завершение Да Да НС'Т м...ое 38  вершение STOP ОстаНОВ Останов НС'Т НС'Т Нет "" TSTP Сиrнал ос- ОстанОВ Да Да Нет таиова, по- сылаемыЙ с кл.аНИ81)'рЫ CONТ Продол ИrнорируетСII Да Нет НС'Т _скис по- еле oc:raнo ва W\NCН Изменение ИrнорнруетСJil Да Да Нет окна USRI Олред<ля- Завершение Да Да НС'Т С'Тся ПQЛЪ- зователем USR1 Оnределя Завершение Да Да Нет с'тся ПQЛЪ- :ювателем В разны.х системах разный (см. файл /usrflnclude/!ligna.l.b ШUf раздел тап signal интерактивиоro руководства). Имеются и дрyrие сиrналы. не показаJfНые в табл. 4.1, большинство IH которых сообшает о пся....их заraлочных ошибках, например .....еВерная инструкция". По умолчанию такие сиrналы. как праRИЛО, прНROllЯТ к завершению проrpаммы и С01Д3trnЮ дампа памЯТИ. Перехват и блокирова...не обычно разрешены. так каК есть достаточно "умные" проIl'3ммы. которые 8ссrда стараются устранять послеДСТ8НЯ ВОЗJПlКаюших ошибок Сип,а.тIЫ BUS 11 SEGV также посылаЮТСЯ в случае ошнбок Мы включилlt их В таблицу. поскольку ОНИ чрезвычайно распространены: 8 99% СЛУ1lаеп nporpaMM3 аваРI1Й...О занершается мменно изза I-IМ>". Сами по себе Jпt сиrналы не нмеют пиаrностмческой цнности. Они лмшь указывают на то. ЧТО БЬUIа произведена попытка непрапильноro обращения к памяти. Большинство эмуляторап терминалов посылютт сиrнал W[NCH. Korna промсходит нзмененне их конфиryрационных пар8метров (например. числа линнА на Щfртуа.-IЬНОМ терминале). Зто позполяет IlporpaMMaM. которые тесно r лова 4 Vпровпеl-lие працессоми 69 
связаны с терминалами (в Основном текстовым редакторам), автоматическн переконфитурнровать себя в ответ на нзменения. Снrналы КI LL и STOP нельзя JП!' перехватить. ни блокировать, ни проиrнорировать. Сиrnал KILL уничтожает процесс. которому он посылается, а сиrнал STOP прмостанавлнвает выполнение npouecca .по полученмя сю"нала CONТ. Сиrнал CONT можно перехватить и проиrнорироватъ. 1-10 нельзя блокировать. Ситнал TSTP представляет собой "облеrченную" версию снrнала STOP. Проще веето описать ето как запрос на останон. Он rенернруется драйпером терминала прн нажатИ1f пользователем комбинзнии клавиш <ClrlZ>  Про rpзммы, обрабатывающие этот сиrнал, обычно пыполняют операuин очисткн. а затем посьmают сами себе сиrнал STOP. С друтой стороны, сиrнал TSTP можно просто проиrнормровать, чтобы сделать nporpafМY невосприимчивой к случайным нажатиям клавиш. Может показаться. что сиrналы КlLL. INT, HUP. QUIТ н TERM означают одно и то же, но на самом деле ою!' используются совершенно поразному: Сиrнал KILL не может блокироваться и ПрИnОЛИТ к безуеЛОRНОМУ завершеI01Ю проuесса на уровне операuиоЮiОЙ системы.. В пействитель ноети npouecc не может принять ЭТОТ сиrнал, так как уничтожается раньше. . СиrН8.J] [NT посыпается прайвером терминала при нажатим пользователем клавиш <CtrlC>. Он запрашивает заверweнме текущей операиии.. Простые nporpaMMbI должны прекратить свою работу (еCJDI онн перехва тывают этот сиrнал) илн позволить УНИ'ПQЖИТЬ себя стан.парТlЮМУ обработчику сиrнала. Проrpаммы. n которых есть режим Командной строки, должны прервать текущую операuию. произвестн очистку и снова перейти n режим ожидания. . Сиrнал TERM представляет собой запрос на полное завершение про rpзммы. Предполаraется. LIТO проuесс, который получмт этот сиrнал. пронзведет очистку и прекратит работу. у сиrнала HUP есть две распространенные интерпретаUI1Н.. Воперных. МНОпtе демоны понимают ero ка..: команду сброса [сли демон способен повторно прочитать свой конфиrypационный файл н а.аапrироваться к н]мененJ.fЯМ без перезапуска, снrнал HUP Позволяет менять ero попеде ние. Boвтopыx. данный сиrнал ИНОfда тенерируется црайвером теРМlшала при попытке "очистить" (т.е. удалить) проиессы, связанные с конкретным терминалом. Это происходит. напрнмер. при завершенин сеанса работы с терминалом или коrда модем внезапно рllЗрЬrвaет соединение (отсюда название "hangup"  отбой). Интерпретаторы семеЙства С shell (0511. tcsh и др.) обычно делают ФОНО8ые процессы невосприимчивымн к сиrналу HUP, чтобы они мотли продолжать свою работу, даже кош;) пользователь выходмт из системы. Пользователи интерпретатороп сеМсЙ ства Bourne shell (sh, ksh, bash) MOryr эмулнровать данное повеДСIIНС с ПОМОUIЬю команды nohup. . Сиrнал QUIT напоминает смrнал TERM, но отличается от нета тем, что по умолчанию стандартный обработчнк создает дамп памятИ. Cиrналы USR I и USR2 не имеют стандарпюrо назнвчения. Ими можно пользоваться в различных ситуациях. Например, демон named интерпретирует их как запросы на выбор уровня отладки. 70 Часть I ОСНОВЫ дминистрирования 
4.4. Отправка сиrналов: команда kill Команду kill чаще Bcero НСПОЛЬЗУЮТ дЛЯ прекрашения выполнения npouecca. Эта кома.нда может послать процессу любоЙ СНfНал. но по умолчанию это сиrnал TERM (nporpaMMHoe .1звершение). Команду kill МoIУТ пыполнять КаК оБЬNНые пользователи (для СВОИХ собственных проuессоп). таК и пользователь root (для любоrо проиесса). Она имеет следуюш ий синтаксис: kill 'снrнал] Иllеитификатор rде сие1lал  ЗТО номер или символическое имя посылаемоrо сю"нала (см. табл. 4.1), а идеllтифu"йтор  это номер проиессаадресата. В некоторых снетемах идентификатор I 03НdЧает широковешательную передач)' СJ..trнал& всем проиессам. кроме cHcTeMHыx н текушеro интерпретатора команд. KOMaHДn kill без номера сиrнала ие raрантирует, что процесс будет уничтожен. потому что сиrнзл TERM можно перехпатывзть. блокмровать и иrнориропать. Команда kill 9 pid "безусловно" уничтожает "роиесс. потому что сиrnал номер 9, К1LL. не перехватывается. Мы напИсали "безусловно" в кавычках. так как иноrда npоцессы попадают в состояния, n которых их нельзя запершить даже ТUЮiМ способом (обычно это связано с блокмровкой BвoдaBьrвoдal например ожиданием жесткоrо дИска. который перестал прашаться). Остается однн пьr<од  перезвrpузка. 4.5. Состояния процессов Факт сушеСТ80вания проиесса не дает ему автоматическоro права на получение ДОС1)'Т1а к центральному проuессору НеобхоШfМО знать о четыре" состояниях пыполнення процесса, которые перечислены в табл. 4.2. ТаблИЦQ 4.2. Состоянlo1Я процесса . Cocrояние Описание Выполнение Процесс можно ВЫJIОЛНЯТЬ ОJКИ.д8кие Процесс Ждет выделения ка.коroJUlбо pecYJX.Н Зомби Процесс пытается завершиться Останов Процесс Прl1остановлсн (не имеет разрешения на ВЫПOJ1J-lеиие) ВЫПW1няемый проиесс получил все необходнмъrе ресурсы И ждет, пока снстемный планиропшик предостапит ему доступ к центральному проиессору WIЯ обработки данных. Если процесс выполняет системный пызов. который нельзя осушествнть немеШ1енно (например, чтенмс части файла), снетема переводит ero в состоянне ожидания. Ожидаюшии процесс ждет наступления определенноrо события. Иlпер претатор команд и системные ДемонЫ провошrr n этом состоянии большую часть CBoero BpeMeНl, ожидая постуrulIiМЯ данных с терминала илн нз ceTeвoro соединения. Поскольку ожидающий npouecc фактически блокиро ВаН. то доступ к процессору будет npедостаRЛен ему только в случае получения ситнала. r паво 4. Управление процессами 71 
Остановленному процессу 8.lIМНI1истратор запретил ВЫполняться. Проиеt:- сы останаR!lнваются при получении сиl'НалВ STOP или TSTP и DOзоБНО8J1ЯЮТ раБOl)l по сиrналу CONT Это состояние анвлоrичио ожиданию, но Jlыйти из Hero МОЖНО ТОЛЬКО С помошью HPyroro проuеСС8. 4.6. Изменение приаритета выпалнения: каманды nlce и renlce 3наченне лlсе (фактОр устynЧИJlОСТИ) подсказывает ЯдРУ. как следует относиться к данному процессу по сравнению с дрyrими проиессамн. конкурирующими за право доступа к центральному проuессору. Чем ниже Значение nice, ТеМ выше приориrет проиесса. Диапазон допустимых значений меняется от системы к системе. Как правило, О" прастирастся от 20 до +19, в иноrДа  от О до 39 (см. табл. 4.3). Несмотря на различия в ДИапазонах значений nice, все системы трактуют фактор уступчивости примерно ОЛИНаково. Еслн пользователь не предпринн мает особых мер, то дочерний процесс наследует прноритет cBoero роднтель cKoro "роиесса. Владелеи проиесса может увеличить значение nice. но не может уменьшить ero. Это не дает БОЗмОЖНОСТИ процессам с низкнм приоритетом порождать 8ЫСОКОПриоритетных потомков. ТОЛЬКО суперполЬJО вателъ имеет ПОЛНУЮ свободу в установке значений nice и даже может присвоить проиессу такой высокий пр"'оритет. что все остальные проиессы не СМOIут работать. В некоторых системах ядро автоматическн повышает значение nice процессов, которые Достаточно долrо работал", с центральным проиессором или переведены в фоновый режнм. Установка приориrетов проиессов пручную быстро уходит в прошлое. Korдa ОС UNIX работала на слабых машинах 7080x rr., нв лронзводи тельность больше ncero влияло то, какой процесс занимал основн}ю часть времен", центральноro процессара. Сеrодня, Коrда на рабочих столах CTOJIT HaMHoro более быстродействующие КОМПЫO'fеры. планировшик UNIX, как правило, обслуживает все процессы весьма оперативно. К сожалению, уровень ПРОИЗВОдиТсльности подсистемы BnoдaBывoдa растет не так быстро. как быстродействие центральных "роиессоров. поэтому жесткие диски стали основным ..узким местом" n большинстве ос. o о пРОUЗ80дительности читаите также в ,zлаве 25. Фактор уступчивости процесса можно установить во время ero создания. Это делается с ПОмощью команды nice. Команда rCllice позuоляет НJменять значеЮ1'е nice во премя ВЫПОЛНения процесса. Первая из этих команд принимает в Качестве apryмeH1'a команлную СТРОКУ. а вторая  Н.ilентифн катар проиесса л",бо (п некоторых случаях) имя пользователя. Приведем примеры: 15 nice +10 /bJ.n/1ongt..1.sk: % renlce s а829 Следует отметить. что в разных СИстемах нет четкоro СОrлашеНШI относительно TOro. как задавать требуемый приоритет. Обычно даже команды nice и renice одной системы нмеют ра.злнчный сннтакс",с. Иноrда НУ''+:НО указывать только прирашение, а нноrда  абсолютное зиачснне. В одних случаях значению должен предшестповать дефис, в друrих  флаr п. а в третьих  вообше Ничеrо. 72 Часть 1. ОСНОВЫ ОДМИНИСТРl-1раВОНI-1Я 
Чтобы все было еше сложнее. существует версия команды nire, встроенная в ИНТСРПре'1'атор С shcll и некоторые дрyrие (но не в sh). Если не указать абсолютное пyrевое имя, бупет вызвана именно встроенная версия, а не СRстемная. Это очень неудобно. так как сннтаксис их В большинстве случаев различен (иноrда отличаются даже пиалазонЪ1 3Н8ченнА). В табл. 4.3 перечислены основные варианты. Параметр приор  это абсолютное значение пlсе, тотда как параметр инкр определяет прирашение приоритета по отношению 1( значению nice текушеro интерпретатора КомаНД_ Чтобы ввести отриuателъное значение, необходимо поставить два дефиса (например, 10). Знак '+' нужно указывать только во 8строенной 8ерсии команды nice. т 06лицо 4.3. СИНТОКСИС ЗОДОf-iиfl приоритвТ08 В РОЗЛИЧf-iЫ)( верСИАХ КОманд nice и renice l ' ОС Диапозон С1crемноя команда nice КОМОI-IДО nico . csh Командо I"enice SоlaПв 0---39 иH"p или B ин"р +иHI<p или иl/I<p иннр или n иннр HPиx 0---39 -приор ИJDt п приор +LINКP или иllкp -а пpиoi Red Hat 20---20 -инкр или b инкр +инкр или иHкp приор FreeBSD 20---20 -приор +инкр или uнкр "риор I Ухаэы.вается абсолютный приоритет. но к введенному ]начению LLобанляе'ТСЯ 20. Самый распространенный из высокоприориrстиы); процессоп n COBpeMeH ном мире  xntpd, демон тактопой сннхронизаuии. Поскольку для пыпол...е ния ero миссии быстрый доступ 1( центральному проиессору имеет очень большое значение, этому npoиессу обычно назначается фактор усТ)'Т1ЧИВОСТИ  12. Если какойлнбо процесс займет столько времени центральноrо проиес сора, что доведет показатель среднеА эаrpуженности системы до 65, то перед выполнением команд, необхолимых для исследования этой проблемы, может понадобиться запуск с поf<olOШЪЮ KOMat{ДЫ nice выокоприоритетноrоo ютер претатора shell. В противном случае весьма нероятно, что у команп не будет ни ма..'lеишеrо шаНса быть выполненными. 4.7. Текущий КОНТрОЛЬ процессов: КОМОНДО pS Команда ps  основной инструмент, которым системнЫЙ адмюшстратор пользуется Ш1я текушеrо КОНТрО..'IЯ проиессов. Верени этой команды разли  чаются арrуменТ8МИ и выходным форматом. но. по сути, выдают одну и ту же информацию_ Все персии можно разбить но два осноаны." лаrеря: cHcTeMы семеАства System V (Solaris, HPUX) и системы семейства BSD (Red На!, FreeBSD)_ Кроме Toro, поставшики MOryт настраивать эту команду с учетом конфнryраиин системы, так как она тесно связана с особенностям,", обработки проиессов в ядре и поэто,"у часто отражает нзменення 8 ядре. С помошью КомаНДЫ ps можно полyчwrъ ииформацию об ндентифика торах, приоритете. упра8Ляюшем терминале тorQ или иноrо процесса и MHOroe друтое. Она также позполяет узнать о том, какой объем памяти использует процесс. сколько времени иентралъноro прош:ссора он затребовал. каково ero текушее состояние (выполняется. остановлен, простаипает м т.д.). Процессызомбн в 1Пfстинrе команды ps обозначаются как <ехitlпq> нлн <defunct>. rЛОRО 4. VпровлеНloIе процессомt.1 73 
A1rмИНИLLpClТОр должен наУЧИТЬСЯ поннмать 8ЪJJЮДНУЮ кнформаuию кошн ды ps. Посмотрев на полученкъrй ЛИCПIнr. можно опредeлwrъ (помимо вcero проl.fеro), какие процессы выполняются в системе, сколько ресурсов иентраль HOro проuессора и памяти они используют и кому принадлежит КаЖДЫЙ из HIIX, Команда ps стремительно УСЛОЖИЮIась за последнне иесколько лет. Некоторые поставшики бросили попьrтЮI стандартнзироватъ выхолной фор мат этой команды и сделалп ее полностью конфиryрируемой. Про.едя небольшую настройку. можно получить практически любые требуемые результзТЪ1. В Red Hat команда ps является настояшнм хамелеоном м ПОНlIмает наборы опuий из иелоro ряда друrих систем. Имеется также спеUlальная переменная среды, с помошью котороЙ можно пыбрать IIУЖНЫЙ набор. Не пyrайтесь подобной сложности: пусть ЭТО будет кошмаром разработ чиков ядра. а не системных ап.ммнистраторов! Несмотря На Частое прнмснt:"f-ше команды ps. достаточно знать лишь несколько маrических эаклинанмй. В Red Нзt и FreeBSD получить список все)( "роиессов, выполняюшихся в системе, можно с помошью комаJШЫ ps аих. Н иже показаны результаты работы этой команды во FreeBSD (в Red На! они будyr HeMHoro друrиМJ<). @ . Р. 8ш. USER PID 1;CPU '<EМ vsz RSS тт ST-'.T STARТED 'Т!НЕ COММAND соос О 0.0 0.0 о о .. ОС. 8:35РМ О:ОО. ОБ (S"4P[") root. 1 0.0 о.. 208 12. .. 5. 8:3SPH О:СО.20 1.1"11.t. -о rODt 2 0.0 0.0 О 12 " oL 8:]PM О:(lО.ОЗ tpo!I@da@monJ rоФ[. '6 ..0 0.0 160 112 5. В:ПЕ'r-! 0:01.45 вуз10qd root Ь. о.. 0.0 228 1::::' I 8: "I."1PM 0:00. /J. ct'"OI"l 75 ... 0.0 :t:b 1.4 "- '"" в'тРм О:О(;.О2 'рС1 roo .00 5.5 0.0 2.' ., '" 8::ПРМ 0:1)[1.1Q lY1etd evi 1251 ..0 ..0 ]20 256 р8 ... !:5С1РМ o:og.41 e:9h (csh. Bvi 15011 0.0 о.. 128 6. р8 5. 3:11РН 0:0(1.03 "'"" lqer 1520 0,0 0.0 ЗJ2 224 р' R' 3:11PH 0:00.04 р. ilU.x Опмсание Каждоro поля приводится в табл. 4.4. Fше один полезный набор apryмemoB команлы ps в Red На! н FreeBSD  lax. Команда ps lax nыдает более спеtlиалиЗНРОRilННУIO информацню и пыполняется быстрее. поскольку не осушествляет сопоставлен-ия IIДСНПiфИ каторов процесс оп с "Iменами rтОЛЫОRателей. Зто может оказаться RеСЬ\,tБ важным фактором. если снетема уже серьезно заrpужеl-13 какимто IIроцессом Ниже n сокрашенном Шfде показаны результаты работы команды. Обратите пни манне на дополнительные поля PPID (илеНТllфJ.lкатор роднтельскоrо npouecca), NI (зна'1енне ";00) " WCHAN (ресурс, KOToporo ожидает npoueccl. . ра 1"" UID РТО PPID ,:Ри PR!" NI V5Z RSS WCHAN STAT тr Т rHr t:OloIo!1\ND . . . о -18 . О . i!5e€ic ОС. .. О:(IО.О6 r:!lw.шреrJ . 1 О О 1. . 2.' 120 wa.lt. ТО .. 0:00.20 .lПJ.t -. О О О -'8 О о 12 .а203с OL .. 6:00. ОЕ. pёiqpd.aemQn О .6 1 о } О 160 1:;'2 ;Jele,::1" '. .. О:Vl.П sysloqd . 71 1 . О -.. .. select '"" .. (1:00.0 I роr::ПI':'Р . 8' о О 26. 20., select [Но ?1 С:СО.2"1 fIIOJntd 74 ЧоClЪ 1. Основы одминистрирования 
Поле Таблица 4.4. Поясне...ия " ВЫХОДI-IОи информоции комонды рз OUX (во FreeBSD) ..... USER PID 'СРП 'НЕМ VSZ RSS ТТ STAТ STARTED TlМE COММANO Содержимое Имя в.ладельца лроuесса Идентификатор процесса Доля времени цситральнoro проuессора (В проuситах). ВЫделенная данном)' проuесСу Часть реальной памяти (8 процеиrax), используемая д&нным прouессом Виртуальн.ый размер лроuессэ в килобakrax Размер резидентноro набора (количество стрвн.щ памяти ра..змером 1 Кб) Идентифкxaroр УЛРaвJUUOшеro терминала Текущий CТ'd1)'C проueсса: R  выпалияется D  ОЖИдает заffilСИ на д.иск 1  неахтнвен « 20 с) S  неактивен (> 20 с) т  ПРИO(;J'RНомен Z  зомби ДOnО.1П-lительные флarи: >  процесс имеет повышен.н.ы.й приоритет N  проuесс имеет пони.женн.ы.й прноритет <  процесс прсвысил лроrpaммКhIЙ JШМКI' на использование памяти А  проuесс запросил замену ПрОИЗDОЛhНОЙ страницы S  процесс 3.il.просил замену стрвнШ!ы по принцнпу FlFO v  процесС лрностаномен на BPC"UI выполнения вызова vfort Е  процесс nытве-rcfl Вbl.ЛOJlНИТЬ вызои exlt L  некоторые страннцы блокированы в оперативно" памяПl Х  процесс находится в состоянни трасснровки НJ1.И отл.а.дк..н S  прouесс ЯВJIяется ЛИZ1ером сеаиса (ВJЩIleJ1Ьцем управляющсro терминала) W  процесс выrpужен на lDICK +  процесс нахQДИТСЯ в интерактивном режиме своею уПрав1lяющеl'О терминала Время запуска процесса Время центральноro npouессора, затребованное процессом Имя и apryMeНYbl команды I 1 Список apryMCtffOB может бьпъ неполным. Добавьте опцию ww. чтобы запретить усечение. p]  Б Solaris и HPUX ПОЛУЧIIТЬ информацию о выполняемых процессах можно С помошью коt.13НДЫ ps er (они работает н в Red Hat): . рв e' СID prD PPID с STlМE ТТУ ТlМE СОМО root. О О ВО Dec 21 0:02 :srled root I О 2 Dec 21 4: ]2 /et..cl1n1L  тоос 2 О В Dec 21 0:00 paqeou t. хаос IТJ 1 ВО Dec 21 0:02 /us[/11bIsentr.a11 bd t.rent. 11482 В4Н з5 Н:З4:Н) ptsll 0:00 05 ef trerlt B.II4 8422 20:! H:32:SCl pts/"1 0:01 csl-: Пояснения к ЭТо\tv листинry даны в табл. 4.5. 75 r ЛОВо 4. Упровление процессоми 
Т абпицо 4.5. Пояснения к ВЫХОДНОЙ информации команды ра ef (5ala,is, HP-UX и Red Hal) Пап" UID PID PPIO С STlМE ТТУ TlМE сомо Содвр>Ю1мое Имя ВJU!дельш процесса Иа.снтифккатор проuесса Идентификатор родитCJlbCХОro проuесса Информauия об использовании uентрально ro происссора и плaюtРОВ8ИЮ1 Время эапуСК8 проuесса Упрвв.ruuoщи:А: терминал Время uс:нтральн-оrо проuессора. эатребов.ан.мое проuессом КомаНда и apl')'Mcmw Подобно команде ps lax в Red Hat и FrееБSD, ps .elf позволяет в системах семейстпа System V увидеть и друrие интересные нанные: . Р. .lf F S UID PID ?!:'ID С Р lП ADDR sl W-:ИАN т [МЕ' CGtD " Т rсю't О О "О О БУ fOClc2fd8 О 0:02: 5ched " . root. 1 О 65 1 ,О f:26aBOO "" ff2ii2c8 4:)2 1:"\1.t.  " s root. 1<2 1 .1 1 20 f!"2eSOClO 11. {ООс:Ь69 О:ClCI sys load Столбцы STIME и n'Y здесь опушены, чтобы ЛИСТJlнr Y"-fеСТW1СА по ширине страниuы; они идентичны СТQлБU8М. вы.З.8ваемыМ команной ps er. Поля листинrа описаны В табл. 4.6. Таблица 4.6. Пояснения к ВЫХОДНОЙ ИНфОРМаЦИИ KOMQt-IАbI р& --elf 15010';'. HP'UX, IRIX и Red Но'\ Поле F s с со е жммое Флarи процесса; возможные значени.в зависят от системы (редко нспользуются си.стемны.ыи администраторами) Статус проuесса: о  в текуший моыею выло.лня.ется S  невктивсН (ОЖИдает события) R  разрешен к lIыnолиениЮ т  останомеи или отлвж.иваетси Z  :юмбн О  нсвктивСН И не может быть прерван (обыч-но ОЖИд8ет записи на днск) ИнфорЫamlЯ об использованИИ uентрa.JtbНОro проuессора (применя стек ДЛЯ nлaиирования. проuессов) Приоритет планировании (BHyrpeHHee значение IIдPI, ОТ1lИЧаеТ'Ся от значения nlее) Значение nlее или константа sy ДЛЯ снстемных проuес сов Адрес проuесС8 в памяТИ Число страниц. занимаемых проuессом В оnеративноR памяти АцреС ресурса, KOTOporo оЖJ.Iдает процесс Р NI AODR SZ WCНAN 76 Часть 1. ОСНОВЫ администрирОВаНИЯ 
4.8. Улучшенный текущий контроль процессов: проrрамма top Команда ps позволяет сделать только разовый, моментальный "снимок" системы. НО получить полную картину Bcero проис"одящеro в ней довольно сложно, Существует бесллатная лроrpамма top, которуЮ можно установJПЬ в систем&)( мноrиx типов, чтобы получать с ее помощью реryлярно обновляемую сводку активных лроuессов и используемых ими ресурСОВ. Автором этой проrpаммы ЯWlяется Уильям Лефевр (William LeFebvre). o Проzрамму 'ор .можно зоzрузuт. с WеЬузло www.group.!)l$.coт. Вот примерные результаты ее работы: 148t. pid: 2.:1314; l"d 8.ver.age.s: 2.91. 2.95, 2.89 15;5:51 15 proceslle8: 71 5eepinQ', 3 rur:r.1Щ}. 1 :lo:r\l:Jle cpu et.&t.e.s: 4".5\ \J8er. 0\ nlce. 23.9" 8УВСerII, 31.6\ .!.diI!I Merr.ory: 113М aVlII.ll. HIBM 1п se. 4972J< tree, 62321'1 lQcked PiD USER PRi. NICE SIZE """ ST"E ПН>: ИСfU с.и СОММДND 1313 root. 1 19 291К Н8!< 81eep 0:00 9.З:t 0.7' erpcd 2858 roct 1 О lSб41< б7Ei}( B!.IIIIP 0:20 5.4' О."П sl!:-<dm& 1310 root 2Т О B12 .авв}( соn 0:00 1.6' 0.3\ 8endm4 981 root 29 О 21521<. 232K cun 0:03 0.0\ 0.01 <ар В2 соо< 1 О 44" 2161< 81eep 0:48 6.0' 0.0\ 1n.ro 778 UUcp 2Т О 2441< 508" сип 0,04 0.0' 0.0' UUCICO 5298 randy 15 О 2281<. 1161': s1eep 0:00 0.0' О.()' c.h 151 roct lS О 12К 8" 81eep 54:40 0.0' 0.0' 1JpdiВ te М62 tr.nt IS О 212!< О" ele.p о: ОС 0.0\ 0.0' c.h 5843 t>et.h lS О 208!< ОК 81eep 0:00 О.О' 0.0' ceh 1БТ I"OOt IS О 100К О" _leep 0,00 0.0\ 0.0' lpd 1311 r..ndy 5 О 2241<. 40ВК sleep 0:00 0.0' 0.01 prev По умолчанию эта информаuия обновляется кажпые десять секунд. Наиболее активные лроuессы указываются первыми. Проrpaмма top ЛОЗВо ляет также посылать проиессам сиrн8лы и использовать команду renice, Ч'Тобы пользователь Mar иаблюл.ать З8 тем, как ero действия влияют на обшее состояние системы. Для Tol'O чтобы обновлять информаш<ю каждые десять секунд, лроrpамма top должна занимать некоторую часть времени uентральноrо проuессора. По этой причине ее следует -использовать только дrlя диаrностически'l( иелей, а не как протрвмму. постоянно работаюIЦYЮ в отдельном окне. Пользователь rool может запустJПЬ лроrpамму lор с олш<ей q, чтобы обеспечить ей максимально возможный приарwreт. Это очень удобно, если какието проuессы уже сушественно замедлили работу системы. 4.9. Процессы, вышедшие иэпод контроля Ииоrда в системе поЯW1яются проиессы, которыми по той или иной причиие должен заниматься администратор. Неynравляемые проuессы бывают дВУХ видов; пользовательские. потребляюшие слишком MHoro системныx ресурсов (например, времени uентральноrо проuессора или дисковоrо про странства). и системные, которые внезапно "ападают в буйство" и начинают вести себя непрелс:казуемо. П роиессы nepвoro ти па мOIУТ быть вполне работослособными, лросто они некорректно обращаются с ресурсами. В то же время системные проиессы всеrла должны работать в соответствии с определенными правилами. r лово .4. Уnровление процессоми 77 
0' Об обработке неуправляе.wых процессов читаите также tl параlрафе 25.4. Проuессы. занимающие чересчур MHoro времени централъноrо проиес сора. можно выявить, проан8ЛИЗИРОвав pely1lbT3TbI рабоТЫ комзнлы ps. Еспн оqеаилно. что какойлибо пользовательскнй проuесс потребляет больше ресурсов, чем ему лействитс.'Тьно необходимо, ero нужно J.lсслеловать. СамыЙ простой способ разобратьсЯ в снтуаuии  связаться с nлanелъцем проиесса и СПрОСIПL, что происхолит. Если .по неIЮЗМОЖНО, прндется деЙствонаТL 1.-13 свой страх и риск. Хотя в обычной ситуаuии системны"А администратор старается не за.ходить а каталоП1 пользователей. ::по лопускается. ecmt нужно изучить исхолный текст неуправляемоrо проuесса н ВЫЯСИИТЬ, что же он делает. Это может понадобиться по двум причинам. Вопераых. проиесс может быть леl;iСТВlпельно важным WlЯ пользователя Уничтожать каждый проuссс. который занимает MHoro времени J..tempaJlbHOrO проuессора. не сопсем разумно. Boвтopыx, проuесс может оказаться леСТРУlo..'ТНВI-IЫМ. написаннЫМ хакеромзлоумыruленником. В этом случае нужно точно ]1I8ТЬ, что он натворил, иначе исправить положение не удастся. Если причину пояплеНИSI неуnравлясмоrо проuесса определlПЬ не улается. приocraновите ero сиrнмом STOP Ii аrпр..'шые R.тJаделыуy по JлеКТРОl-lноii почте сообщение о том, что СЛУЧИЛОСЬ. Проuесс можно впослеДСТВIIИ перезаnyстить Снl'НалоМ CONT. Помните о том, что некоторые проuессы перестают нормально функuионировать в случае СЛИШКОМ долrоrо ПрОСТQЯ, поэтому 0I1ИС3Н1-IЫИ ПОдХол не вcerna приемлем. I-Iапример, проuесс Mor осуществлять обмен ланными через сетевое соединение, а после "проБУЖде иия" обнаруживается, что соелинение уже разорвано. ЕCJП1 проuесс использует слиШКОМ MHoro ресурсов проuессора, 110 лелет нечто обоснованное и работает правильно. необходимо с помошью команды renice понизить ero приоритет и попросить БШlделЫ1d в будушем запускать проuесс с более низким приоритетом. В систеМа.'\. rде не реалНJОВ8НЫ каоты, ре.JУЛЪТ3ТЫ работы НС}l1равляемых проuессов МOIут заполНlПЬ всю файловую систему н. таким образом, ПОnЛСLIЬ за собой бесчисленные проблемы. Прll переполненин фаЙЛОIlОЙ снстемы на консоль выдается множество сообшений. и попытки записать чтолнбо на диск вызывают появление сообшений об ошибках. Первое, что нужно сделarь в такой ситуauии.  ЗТО остановить проиесс. который переполняe-r диск. Если на лиске было спеuиальНо зарезервировано свободное пространство, то в случае ero внезапноrо заполнения можете быть уверены: тут чтото НеЛanно. Не существует средства, аН8ЛОI'ичноrо команле ps, которое сообшило бы о том. кто использует дисковое пространство. Но есть ynшиты. позволяюшие получить список oTкpьrrыx файлов и проuессов, работающих с ними; описанне УТИЛИТ ruser и Isor приведено в параrpафе 5.2. Можно приостановить все полозрителъные проueссы, пока не обнару жится источник проблем. В этом случае не забудьте после ВЫЯВЛСНltя нар)Wнтеля удалить все созданные им файлы и перезалустить неВИI.ювные проиессы. Старый и хорошо известныЙ трюк  запуск из интерпретатора комаlШ бескоtlечноrо UИЮlа:: while 1 mkd1.r adir cd adir 78 ЧОСТЬ 1. 0о-1ОВЫ одминистрировония 
touch afil.e end Такое иноr.nа происхо.nит. если злоумышrтею-rик проник в систему через незащищенную учетную запись или зареПlстрированный в системе терминал, брошенный без присмотра. Созданное .nерево каталоmв не занимает MHoro Места на ДИСКе. просто переполняется таблица индексных дескрипторов файловой системы, и пруте пользователи теряют возможность создавать новые файлы. Единственное. что можно сделать R по.nобноЙ ситузиии.  устранить лоследствия И предупредить пользователей о необходимости зашиты своих учетных записей. Поскольку .nерево каталоrО8. остапленное таким малены<им nporpaMMHblM '.перлом". может оКазаться слишком большим для 'Команды пn r, ПРИдется написать сuенарнй, который спустится по дереву вниз. а затем. возвращаясь. удалJП все К3Т8Лоm. Если проблема ВОЗНИЮlа в каталоrе /tmp, а он был создан как отдельная файловая система, то вместо Toro чтобы пытаться удалять файлы, можно проинициализировать каталоr /trnp С помощью комаlщы newfs. Более лодробно об управлении файловыми системами рассказывается в rлаве 8. 
5 Файловая система Ответьте, не раЗДrAЫR8Я, на вопрос: ЧТО из HL-IжепереЧL-lсленноrо можно встретить в файловой системе? Процессы . Пос..lеДОВ8те..lьные порты . Каналы межзадачноrо взаимодействия Совместно используемые сеrментЫ памяти Если речь илет о UN!X, ответом булет "все вышелеречисленное". Ну и. конечно, в фаловую систему BXOHT собственно фа.lЫ. ХОТЯ ОСНОВНЫМ предназначением файловой системы является орrаНl1за uия хранимых ресурсов системы (Т.е файлов), проrраммистам не хотелось каждый раз заново изобретать колесо при ynравлсни 11 объектами лруrих ТИПОВ Очень часто ОК8ЗЫВ8ЛОСЬ улобным преДСТ8ВЛЯТЬ такие объекты в виле элементов файловой систеМbI Полобный УННФИllИРОВ8ННЫ':' ПОДХОD и.fеет как преимушества (едины':' проrpам.мный интерфеVlс, .1еrки':' доступ из Команлноrо интерпретатора). таК и недостатки (реализация фаl;iЛО8ЫХ систем по методу ЛОl<тора Франкенштейнв). Но незввисимО от TOro, нравится он вам или нет. имеН1iО такой nOДXOn применяется в UNIX. Фаf:lловую систеу можно предcrавИ1Ъ состоящей из четырех основных компонентов: пространство И\.1ен  методы именования объектов и орrзнизаuии их в виде иерархий: . API-  набор системных вызовов, предназначенных д,'tЯ перемещения между узлами системЫ и упраn'7Jения ими; Интерфейс проrpаммироваиия ПРИ..10жений (АррliсаLIOП Programming Iпlеrfасе. API)  это обший теfИИ ДЛЯ описания набора noдnporpaмM. орrаНН30В8ННЫХ В ВИД(! библиотеки или совокупности биб:Jиотек и доступных ПРО[JW.ммистзм. 80 ЧООt> I ОСНОВЫ одминистрировония 
. модель безопасности  схема зашиты. укрывания и COBMCCТHoro исполъ зования об'Ьектов реализация  проrpаммный код, который связъrвает лоrические MOДe.тrn с JIИсковой подсистемой. Современные файловые систеМЫ в UNrx олределяют абстрактный интерфейс уровня ядра, лозволяюший работать с различными алла ратными интерфейсами. Некоторые чвсти файловоro дерева обрабать,вaIOТСЯ традиuи. онной дисковой лодсистемой, дрyrие ynравляются отдельными драйверами ядра. Например, за работу сетевых файловых систем (NFS) отвечает драйвер. который перенаправляет запросы серверу на дрyroй комттьютер. К сожалению, архитектурные rpаюfUЫ иечстко очерчены, и имеется слишком MHoro "особых" случаев. Скажем, фаЙJ1Ы устройств позволяют проrp8Ммам взаимодействовать с драйверами ядра. Они не явлmотся файлами данных, но обрабатываются бвзовыми средствами файловой системы, а их характеристиЮl записываются на диск. Навериое, имело бы смысл переписать олераuионную систему с учетом опыта последнеro десsmrnетия. Дрyrим услоJКНЯJOшим фактором является то, что coвpeMeнныe версии UNlX поддерживают несколько типов файJтовых систем. Помимо бвзовоrо варианта  4.3BSD, рвспознаваемоro большинством ОС, сушествуют фаЙJТО вые систсмы. обладаюшие повышенной надежностью или упрошенными средствами восстановления лосле сбоев (нвлример, VXFS в HPUX). системы, поддерживаюшие иную семантику (налример, расширения, связанные со списками лрав доступа в Solariь и HPUX), и системы, построенные на друrих типах носителей (в частности. жестхие JIИски DOS или компаКТllИСКИ формата ISО9ббО). Все они MOryr отличаться от стандартноЙ файловой системы UNIX, описывемойй в настоятей rлаве. 5.1. Путевые имена Файловая система  это единая иерархическая структура, которая начинается с KaтaJ10ra I и разветвляется. охватывая произволъное число подкаталоrов. КaTВJ10r caMOro Bepxнero уровня именуется корневым. Uепочтеа имен каталоroв, через которые необходимо пройти для доступа к заланиому файлу, вместе с именем этоro файла называется путевым иMeHt.\I. Пyrевые имена MOryr быть абсолютными (налример, /tmp/anle) нли относи тельНЫМИ (скажем, ЬооkЗ/Шеsystеm). Последние интерлретируются, наЧ1<Ная с текушеro каталоra. Некоторые СЧlfТaIOТ. что текуший KaтaJ10r задается коман.пным интерпретатором. На самом деле техуший кат8.ЛОТ имеется У каЖдоrо лроuесса. Термины файл и u.I,4Я файла. а также путевое имя и путь в большей или меньшей степени ЯВЛЯЮТСЯ взаимозаменяемыми. Понятия имя файла и путь можно употреблять как для абсолютных. так и для относительных пyrевых имеН. под путевым именем, как правило. подразумевают абсолютный путь. Слово файл часто используется в случаях, KOflla нужно сконuентрировать внимаЮfе на содержимом файла, а не на ero имеЮf. Файловое дерево в UNIX может быть произвольноrо размера. Однако существуют определенные оrpаничения: имя каталоra D,ОЛЖJiО состоять не более чем из 255 символов, а в OTДHOM путевом имени не должно быть более 1023 символов. Чтобы получить доступ к файлу, абсолютное пусевое имя KOTOporo не удовлетворяет этим требованиям. необходимо с помоwью r ЛОВО s. ФОЙЛОВОЯ системQ 81 
команды cd перейти в промежуточный каталоr а затем Воспользоваться относительным путевым именем-. На имена файлов и каталоroв не накладывается никаких оrpаНИ-l.fений. за исключением тoro, что длина имен не должна Превышать заданный предел и в Имена нельзя включать СИМВОЛЫ '(. В чз-стности, теоретически лоnyска IOТся имена, содержашие пробелы. Но на самом деле по давней традиции apryмeHTЫ командной строки в UN IХ разделяются пробелами, поэтому старые проrpаммы интерпретируют пробелы в именах файлов как признак конца ОДНоrо имени и начала дpyroro. Учитывая количество всевозможных файловых систем. сywеств}1ОШИХ на сеrодняшний день, нельзя полаrать, "IТO вам никоrда не встретятся имен файлов с пробелами. Даже еCJrn вы не взаимодеlkтвуете с компьютерами. работаюшими под упраnлением Macinlosh или Windows, все равно есть MHoro пользователей, ПрИВЫКШИХ давать своим файлам сложные имена. О подобноl;i возможности Не следует забывать при написании любъrx сценариев, Rзаимо действуюших с файловой системой В общем случае имена с пробелами надлежит просто заключать в Лl30йные кавычки. Например KOMaнna \ mor. "Ну exc.118nt :fi1.. txt" будет ВОСПРIOlЯта как попытка передать Проrpамме more единыЙ apryMem Му excellent file.txt. 5.2. Монтирование и демонтирование файловой системы Файловое дерево формируется из отдельных частей, называеМЫХ файло выми системами, Каждая из которых СОD.ержнт один каталоr и список ero подкаталоrов и файлов. Термин '.файловая система", по сути. нмеет два значения. С одНой стороны, это составная часть файловоrо дерева, а с дрyrой  все файловое дерево и алторитмы, с помощью которых UNIX управляет им. Как правило, значение термина становится ясным из контекста. Большинство файловых систем являются разделами диска, но, как уже упоминалось раньше. файловой системой может быть все. что ПОlIЧliняется определенным функциональным правилам: сетевые файловые систеf..rъf. KOM поненты ядра, резидентные диски и т.д. Файловые системы прикреrтяются к файловому лереву с помошъю команды mount Эта Koмaнna берет из сywествующеrо фа.йловоro дерева каталоr (он называется точкой монтирования) и лелает ero корневым каталоroм присоединяемой файловой системы, На время монтирования доступ к содержимому Точки монтирования становится невозможным. Как правило, точка МОНТИРОDания  пустой катал-оr. Например. команда I lIIOunt /dJaV/8d.1.C /u..rJJ монтирует файловую систему, размешенную на устройстве /dev/sdlc. лод ИМенем /users. После монтирования моЖно с помошьJO комаtщы Is /users посмотреть, что содержит эта файловая система. Список файловых систем, которые бьurи смонтированы пользователями. хранится в фаме /elc/rstab, /elc/vfslab или /etc/checkJisl, в заВItСНМОстlt от Здесь необходИМО дать пояснении Сама дИСКовая подсистема не накладывает никаких оrpaничеинй на D.'JИН)' пyrевоro Иf..feИН. Но системные вызовы. получаюшне доступ к ФаЙЛО80Й системе. не позволяют свонм apf)'Meктaм иметь длину более чем 1023 СИМВола. 82 Чость I Основы О,д"ЛIo1Нlo1стр"'ровония 
 операционной системы. Блaroдаря этому станоВЯТСЯ возможными автомати '/еская лроверка (fsck p) и мо.rrиpование (mount a) файловой системы На этапе начальной зarpузки. а также выполнение коротких команд наподобие mouBt /usr. Точное местоположение монтируемой файловой системы ишетСЯ в фаhле fstab (см. лараrpаф 8.3). Демонтируются файловые системы командой UП10uпt. Б большltНСТhе систем занятую файловую систему лемонтировать неВОЗМQЖIIO. В ней не ДОЛЖНО быть открытых файлов и ВЫПОЛНЯЮШJ-lХСЯ проuессов. ЕсJП! Л"ЮНТИ руемая файловая систеМа солержит исполняемые nporpaMMbl, ОНН не лоЛЖНЫ быть запущены. Во FreеБSD допускается применение команды UП10UП[ r, которая прину ДИ'l'eJ1ЬНQ демонтирует занятую файловую систему. Это не лучший ВЫХОД И3 положения, потому что лроrpамма, работающая с данной файловой системой, мож.ет зависнуть или начать вести себя HeHopMWIЪHO. Использовать команлу umount r МОЖНО только на свой страх и риск. В Solaris 8 также имеется команла umount r. хотя в более ранних версиях системы аналоrичноrо результата можно было добиться в два 'папа. Сначала выполнялась команда lockfs b точка },fOнтllроваНIIЯ, которая ставила на файловую систему "жесткую блокировку". Затем вызыпалась обыч-наи команда umount. Если ядро "жалуется" на то, что демонтируемая фаЙловая система занята, можно запустить КОМ8IЩУ fuser, которая позволит узнать, :кто работает с файловой системой. Команда fuser c точкаАIOНlпир08Dllия выводит иденти фикаторы всех npoиессов, обрашаюшихся к файлам или каТ8Лоraм указанноЙ файловоЙ системы. К этим идентификаторам добавлиются специальные символьные коды, обозначаюшие выполняемые действия. Например: ( , f'u.8r c /u.r /и5С: 157tm 315ctom 414tom 5049tom 84tm 49бсtоm 490tm 16938с 16902ctm 358ct.om 484tm Точное количество СИМ80ЛЬНЫХ кодов зависит от системы. Нанболее распространены следуюшие коды: с текущий каталоr npoиесса раСЛOJК»Кен в файловой систеNе; о ОТlCjJыт файл; t вылолняется nPОl1'амма; по.дключен файл (обычно совместно ислользусмая библиотека); корневой каталоr процесса нахоnится в файловой системе (задается сломощью KOЫ8.J-UlЫ cbroot). Чтобы определmъ. какие проrpаммы связаны с этими проuессамн, вызовите КОМ8НДУ ps, передав ей список ннтересуюших вас идентификаторов "роиессов. о которых сообшила команда fuser. Например: % ре rp "157 315 50.9" UID PID PPID С STlМE ТТУ TlМE root. 5[).g9 490 О Oct 14 0:00 root 157 1 О Jun 21 5:26 1р 315 1 О Jun 27 0:00 смо lusr/bin/Xll/xdm /uзr/зЬiп/паmеd /uзr /liЫlрзсhеd Список идентификаторов взят в кавычки, 'ЧТобы интерпретатор shell передал ero команде ps как один артумент. 83 r ЛОВО 5. ФаЙЛОВОЯ октемо 
KOMaНZIa fuser может также Bыавать статистику использования отдельных файлов, а не всей файловой системы. Синтаксис ее вызова в этом СЛ-Iае ДOJDКeH быть таким: @ fuser f ИUJlфайла Указав оnuию -k, можно заставить команду Fuser послать всем найпенны проuессам сиrнал KI LL. Это очень опасное лействие, и W1я ero выполнения следует иметь прпвилеrии ПОЛЬЗ0вате."IЯ root (им можно стать с помошью команды _udo). В RedHa! команда luser. разработанная Вернером Алъмсберrером (Wemcr Almesberger), использует вместо опции c опuию -m Если нужно получить статистику по отдельным файла.\of. прОСТО опустите опuию -m. Имеется также полезиая опuия VI которая застввляет команду fuser выдавать результаты своей работы в стиле команды ps: , :fu..r шv /u_r USER PID lusr root 1 root 125 root 214 root 321 ACCES S '.. .m COММhND ....т ....т " ..m .1.nt epmd portmap sysiogd  Во FreeBSD нет коман.nы fuser, но есть командв fstat с аналоrичными возможностями. Альтернативой комаНде lu_cr является бесплатная лроrpамма 1_01 ("Us! 01 ореп files"  список открытых файлов), которая формирует список дсскрнл торов открытых файлов По лроuеосам и именам файлов. Проrpамму Isol наш.сал Вик ЭйБCJU1 (Vic ЛЬеН) из университета Пердъю. штат ИНдиана. Получить ее можно на FТPY:L1e ftp: Ilvic. се .purdиe. edи/pиЬ/tools/unix/lso! Она работает во всеХ рассматри ваемых нами СИстеМах. 5.3. Орrанизация файловой системы Файловая система в UNIX никоrда не была хорошо орraнизована. Лоскольку не существует единой системы присвоенJl.Я имен. Оl1новременно используется MHOro разных. не соrласованных между собой правил имено вания файлов. ВО MHOJ11X случаях фвйлы rpуппируются по выполняемым функuиям. независимо от Toro. как часто они изменяются. Это затруl1няет модификаuию операuионной системы. Например, каталоr /etc содержит файлы. которые ннкоrЛ8 не меняются. а также полностью локальные файлы. Такие нововведення, как каталоr /var. помоrли справиться с рядом проблем. но файлы большинства систем все еще не упорядочены. Тем не менее, для вcero находпrся CB место. Большинство UNIXnporpaмм можно инсталлировиrь с минимальными усилиями в плане переконфиryрнрования системы, если ее настроили стандартным способом. Однако попытка улучшить СТРУКТУРУ. задаваемую по умолчанию, может привести к неприят ностям. Корневая файловая система вк..тIючает в себя корневой Kaтa...rтor и минимальный набор ф3ЙJlОВ и ПОllКаталоrоВ. В ней располаrается ядро, которое обычно НОСИТ имя /unix или /vmunix. Этот фаfl.J '\lOжет быть лополнительно скрыт в подкаталоrе fkernel или /stand. Корневая файловаSI 84 Чость I Основы ОДМlo1нИСТРИРОВОНИf! 
системв также содержит каталоr /dev для файлов устройств, каталоr /elc для системных конфпrypапионных фaJlлов, катало", /sbln и /bln ДЛЯ важнеЙШИХ yrилит и иноща каталоr /trпр дЛЯ временнъ", файлов. В некоторых системах совместно используемые библиотечные файлы, а также фвйлы препроцессора язЬ1К8 С хранятся В каталоl'e /llb. В дpyrкx системах этой же цели служит каталоr /usr/lib, а каталоr /Ilb являетСЯ символической ССЪUIXОЙ. Очень большое значение имеют также К8Талоrn. /usr и jvar. В пероом хранится большинство стандартных nporpamt и дрyrие полезные КОf.fПоненты. например электронная документаuия. СОБсем не обязательно, чтобы каталоr /usr был отдельной файловой системой, однако для удобства аамииистриро вания ето. как правило. СОЗдают именно ТаК. В каталоrе /var содержатся буферныc катало"" файлы реrnС1]Jации, учетная ИИфорМ8UИЯ и прочие компоненты. которые быстро разрастаются и изменяются. Ка.ж,.п:ый компьютер имеет СВОЙ список таЮiХ компонентов. Каталоrn /usr и /var должны существовать, чroбы система моrла заrpузиться в мноrополъзователъском режиме. Большая часть содержимоrо К8талоrа /lIar первоначально находилась в каталоre /05r. В своей системе вы. вероятно, еще обнаружпте соответствующие символические ссылки. RВЛяющиеся остатками прежней ЭПОХИ. Начальные каталоrи пользователей следует держать в отдельной файловой системе. которая обычно монтируется в корневом каталоre. а иноrда  в каталоrе /usr. Некоторые файловые системЫ можно использовать и Ш1я хранения больших ИИфоРМRUИОННЫХ массивов, например библиотек исходных текстов проrpамм и баз данных. Наиболее важные стиндартныe каталоrи перечислены в табл. 5.1. Путевое ими /ып или /""Iп Таблица 5.1. Стондартные котолоrи и t.1)( содержимое /d.. /.1. jllb /tшр /fIYI /proc /Itaпd /ur/biD /шr/рПIa /ur/lп.lud. /ur/5Ып /ur/аЬlп Содержимое Комвнды. необходимые для обеспечеюtЯ миниыальноro уровня рвбarocпособности системы  Файлы устроАств: ТСрМИНВJ10В, дисков. модемов и т.д. Вюк.ны.е файлы запуска и конфиrypauИJol Библиотеки комl1ИJlЯТOрВ языка С Временные фвй1lы. удаляемые в процессе neрС3llrpузки Рабочая облacrь JIЛJI построения lIдPa. фllйJ1ы конфиrypaции (BSD) Образы всех работаюших процессов (в tlекоторых новых систеыах) Автономные yrилиты, проrpaмыы фор."атировании дисков и др. Испол.н.яемыс файлы Иl']Ювыс н развлекательные проlp8.NМbl (60льшсА частью не очень веселые) Файлы 38fOJIOBKOB Спроrpамм KoМ8JiДЫ, обеспечивающие совместимость с я.п:рам Sysr:em V в ВSDсистемах Служебные системиые команды Еспи есть К8.Т8Лоr /lblп, то каталоr jbto обычно представ.л.яет собой символическую ссылку на каталor /usr/Ып. r лова 5. Фоиловоя системо 85 
 Путевое ими Содержимое /usrfllb ВсломOl1!reльныс фаltлы JIЛJI cтaндaP'fНh!X UNlXлроrpaмм ,.../man Сrрвницы: ЭJlсктроикы.х руково.дств /usr/sbJtre Элементы, обшие для различных систем (часто сюда И,,;Од.slТ CJP8.IOWbl электронноЙ документauии) Учетные файл.ы, журналы ИCnOJIЪ3Oвани.я ресурсов рa.31Dlчныс сиcreмнwе журналъные файлы (в некоторых системах) Буферные каталоrи для принтеров, UUCP. электронной почты и T.JI. /_or/аdш /var/log /_"/5рооl /_,,/tшр /usr/ucb /....flocal /usr/local/adm /..../localfЫn /..../local/.tc /usr/local/llb /....flocal/sbln /..r/local/flrc jkerncl Каталоr lI1U! времен.ноro хранении файлов (после перeэarpузки файлы не исчезают) Утилиты и лроrpаммы BSD ЛОICaJIЪКOe проJl)аммное обеспечение (все. что инсталлируется лольэовзтелями) Лока.л.ьные учетные файлы и файлы реrистраuIOl Локa.rrъные ИСПОJ1Н.Яемыс файл.ы: Локальные системные комаНДЫ и файлы конфиrypацИI1 Локальные всломоnm:льные файлы Локальные служебные системные команды Исходные тексты JIЛЯ проl'p8ММ каталоroв /шrfloa.l/* Файлы, необходимые для зarpузки upa (в Solaris) 5.4. Т Io1ПЫ файлов в большинстве файловых систем поддерживается семь типов фаЙЛОВ: обычные файлы; каталоrи; файлы байторнентированных (символьны-,:) устройств; файлы блокориентировaJiНЫ' (блочных) устройств; CQKeТbJ; именованные каналы (F1FO); символические ССЫЛКИ. В некоторых системах Не реализована подпержка таких типов файлов. как сокеты или именованные каналы. Обычные файлы Обычный файл  это ПрОС1"о последовательность баltтов. В UNIX не нахладьmается оrpaничений На ero СТРУК1У'РУ. Тс'Кстоные документы. испол няемые nporpaMMbI, библиотеки функuнй и MHoroe дpyroe  все ЭТО \,;ранится в обычных файлах. К НИМ возможен как последовательный. так и прямой доступ. Каталаrи Каталоr содержит именованные ССЬL'IКИ на дрyrие файлы. Он создается командой mkdir и УJIаляется (если пустой) комаlillОЙ nndir. Каталоrи. в которых есть файлы, МОЖНО .улалить КDмаlillОЙ nn r_ 86 Часть I Основы ОДМt1ниcrРИРОВQНИЯ 
Спеuиалъные ссылки '.' и ...... обозначают соответстнеllНО сам каталОI и ero родительский каталоr. Их нельзя удалить Поскольку у KopHeBoro катзлоra нет родwrеля, ссылка ".:' в ием эквивалентна ссылке ','. Имя файла хранптся в родпreлъском каталоre. а не в самом файле. На файл можно ссьтаться из нескольких каталоrов опновременно и лаже из иескольких элементов одноrо и Toro же КRталorа. причем У всех ССЫЛОК MOryr быть разные Имена. это создает иллюзию тоro, что файл в одно и то же время нахОДИТСЯ в разНЫХ К81'3ЛОrax. Ссылку неВОЗМОЖНО ОТJ1ИЧJ.rrъ ОТ имени файла. на который о.на указывает: в UNIX они идентичны. UNIX подсчитывает коmiчестпо ссьток, укаJЫваю ших на каждый файл, и при упалеНIOf фаЙла не освобождает блоки данных по тех пор. пока не бупет увалена ero последнЯJ.У ссылка. ссыл......, МОЖНО задавать только в пределах одной файловой системы. ссылюt тaKoro рода обычно называют "жесткими.'. чтобы ОТЛIIЧИТЬ их ОТ символических ("мяrких") ссылок. которые описаны ИИЖе. Жесткие ссьuncи создаются командой In. а удаляются командой пn. Синтаксис комаНдЫ In леrко запомнить, так как ОНа повторяет работу команды ер. Команда ер oldfile newfile создает копию файла oldfile под именем newfile. Точно так же, комаНда ln oldfile newf1.1e создаст новую ocьmкy new1ile на файл oldfile. Важно понимать. что жесткие ссылки не ЯВЛЯЮТСЯ отдельным типом файлов. Просто файловая система позволяет создавать ссылки на один и тот же файл в разных каталоrax. Атрибуты файла, в частности права доступа и ИJlентификатор ВЛ3ДeJ1ьuа. являются общими для всех ССblЛок. Файлы байтариентировонных и блокориентировонных устройств o Подробна устройства и драйверы рассматриваются в l.laвe J 2. ФаЙлы устройстп ПОЗВОШIЮТ UNIХпроrpаммзм взаимодеЙСТROR3ТЬ с аппаратНЫМИ средствами и периферий:ными устройcrвaми системы. При конфиryрировании ядра К нему подключаются те модули. которые знают, как взаимодействовать с каЖдЫМ из имеюшихся устройств.. За всю работу по управлению конкретным устройством отвечает спеuизльная nporpaMM3. называемая драйвером устройства. Драйверы устройств образуют стандартный коммуникаuионный И1Пер фейе, который выrJIJllIИТ для пользователя как обычный файл. Коrда ядро получает запрос к файлу байт--ориентированноrо или блокориентированноrо устройства. оно просто передаст ЭТОТ запрос соответствуюшему драйверу. Важно отличать файлы устройств от драЙверов устройств. Файлы сами по себе не являются драЙверами. Их можно представить как шлюзы. через которые драйверу передаются запросы. Файлы байториентированных устройств пОЗИОЛJoуют связанным с ними драйверам выполнять свою собственную буфсризаuию BnoдaBЫBoД8. Файлы блокориентироваН}fЫХ устройств обрабатываются драйверами, KOTOpbIt: Во мноrих систеМах возможна также динаическая заrpузка этю: МОllулей ядром r ЛОВо 5. Фоилов01I система 87 
осуществляют вводвывол большими ПОрШtями (блоками) и возл-аraют обязанности по вьmолиению задач буферизаuии на ядро. Аппаратиые среДСТRЗ некоторых типов, такие как накопители на жестких дисках и маrнитных леН1'ЭХ, MOryт быть представлены файлвми любоrо тилв. В системе может присyrствовать несколькО однотипных устройств. Поэтому файлы устройств характеризуются двумя номерами: старшим и младшим. Старший номер устройства rоворит ядру о том, к какому драйверу относится данный файл. а младший номер сообшает драйверу, к какому физическому устройству следует обрашаться. Например, старший номер устройства 6 в Linux обозначает драйвер пвраллельноrо порта. Первый параллельный порт (fde.f1pO) будет иметь старший номер 6 и младшиЙ номер О. Некоторые драйверы используют младший номер устройства нестанларт НbrM способом. Например, драйверы накопителей на маrнитных лентах часто руководствуются им при выборе плотнОсти заПJlСИ и ДJlЯ определения Toro. необходимо ли перемотать леmy после закрытня файла устройства. В HeKO 7'орых системах "драйвер терминала" (который на самом деле управляет всеми последовательными устройствами) применяет младшие номера устройстn для 7'oro, чтобы отличать модемы, используемые для вызова упаленных систем. от модемов, рsботаюl1IИХ На прием сообшений. Файлы устройств можно СОЗдавать команлой mkпod, а удалять  KOMaH дой пn. В большинстве систем имеется командный сuенарий I'vIAKEDEV (обычно находится в каталоrе fde.) , который создаст стаидартные наборы управляюших файлов для основных устройств. ПреЖде чем беЗдУМНО вызывать этот cuенарий, просмотрите ero текст, чтобы понять. что конкретно он делает в вашей системе. Сокеты Соксты инкanсулируют соединения между проuессами, позволяя им взаимодействовать, не подверraясь влиянию дрyrnх проиессов. В U N I Х поддерживается несколько видов сокетов. использование которых в большин стве своем предполarает наличие сети. Соксты UNIX локальны для KOHKpeт Horo компьютера. Обрашеиие к ним осуществляется через объект файловой систеМbl. а не через сетевой порт. НесмотpiI иа 7'0 что лрyrие проиессы распознют файлы сокетоп как элемепrы каталоra, проиессы. не участвуюшие в соединении, не MOryr осуществлять над этими файлами операuии чтения и записи. С сокстами работ8IOТ система печати, система Х Window и система Syslog. o Дополнительная информация о системе Sys/og приеодится е Маее J J. СОКСТЫ создаются с помощью системноrо вызова socket. Коr.па с обеих СТОрОН соединенне закрыто, сакет можно упалить посредством комаl-ШЫ rm либо систсмноrо вызова unllnk. Именованные каналы Подобно сокетам, именованные KaHaJIbI обеспечивают взаимодействие двух "роиессов, выполняемых на одной машине. Именованные каналы создаются команпой mknod. а удаляются командой rm. 88 Чость I Основы одминстррОВОНIAЯ 
Символические ссылки Символическая, или '.мяrкая". ссылка обеспечивает возможность вместо nyreBoro имени файла )1Сазьmать псеRl1DНИМ. Копш ядро сталкивается с символической ссылкой при поиске файла. оно извлекает из нее храняшееся в ней путевое имя. Различие мeжJIy жесткими и символическими ССЫffi(ами СОСТОИТ в ТОМ, что жесткая ССblЛка  прямая, Т.е. указывает непосредственно на индексный дескриптор файла. ТОТД8 как символическая ссылка указывает на файл по имени. Файл, адресуемый символической ссылкой. и С8ма ссылка физически являются разными объектами файловой системы. Символические ссылки СОЗдаются командой 10 s. а удаляются командой rm. Поскольку ОНИ содержат произвольное путевое ИМЯ, 7'0 MOryr указывать на файлы, храняшиеся в дрyrих файловых системах, н даже на несущеСТ8УЮ шие файлы. Иноrда нескоЛЬКО символических ссыокк образуют uикл. Символическая ссылка может содержать либо абсолютное, либо относи тельное путевое имя. Например, команда ln 5 ../. ./ufз /uзr /include/bsd/sys/ufs связывает имя /usr/includ./bsd/sys/urs с каталоrом /usr/include/urs с помошью относительноrо пути. КаТRЛоr /usr/lnclude можно переместить куди yrодно, но символическая ссылка, тем не менее, остаНетсЯ корректной. Остереraйтесь использовать обозначение 11.... В путевых именах. вк.'1ю чающих символические ссылки, поскольку по символическим ссылкам нельзя проследовать 8 обратном направлении. Ссьтка и ..11 всеrда обозначает исти-ннъrй родительский каталоr ланноrо файла или каталоra. Например, в привеленноА выше ссылке П)7Ь /usr / include/bsd/9ys/ufs/ . ./param.h раскрывается как /usr/include/param. h а не /usr I i:1clude/bsd/ sys/param. h Распространенная ошибка  д)'мать, будто первый ар'умснт команды In s KaKTO связан с ТеК)'ШИМ каталоroм. На самом деле он не раскрывается командой 111, а записьrвае-тся в си",волическую ссылку буквально. 5.5. Права доступа к файлам Каждому файлу' соотнетствует набор прав доступа. представлеНI-IЫЙ в вине Деняти битов режима. Он определяет, какие полъзователИ имеют право ч",тать файл, записывать 8 Ht:ro данные или выполнять ero. Вместе с друrnми тремя битами, ВЛIIЯЮШI-fМИ на запуск I.lсполняемых файлов, этот набор образует код ре:ЖU/tfQ docmYl1a к файлу. Двеналuaть битов режима хранятся В 16бито"ом воле индексноrо дескриптора вместе с четырьмя нополнительными бнтзми. опренеЛЯЮlllИМИ тип файла. Посленние четыре бита устанавливаются при создании фаЙла 1.1 не пошrежат изменению. Биты режима MOryт .вменяться влап.е.l1l.uе". файла или суперпользователем с ПОfo.fOшью команды cllmod ("chal1ge mode"  изменить режим) Просмmp значениЙ- этих БИТОR осуществляется с по\ющью команды 15. r лово 5. Фойлшюя системо 89 
Биты SUID и SGID Биты, которым в коде режима JIоступа соответствую! Rосьмери1.JНЫС значеНIIЯ 4000 и 2000.  зто биты смеНЫ идентификатора пользовате.rIЯ (SUlD) и смены идентификатора rpутлты (SGID). Они позволяют лроrpам"ам получать лоcтyn к файлам и проиессам. которые при прочих обстоятельС'Тв,а,\ неПОС1)"ПНЫ пользователю. Rьmолн.я:юшему ЭТИ nporpaMMbl. Подробнее даНнЫЙ механ-изм был описан R параrpафе 3.1. Если бит SG I D установлен лля каталоrа, то СQЗl1знаемые в нем файлы при запуске будут принимать Иде,IПИфИкатор rpynnbI каталоra. а не rpYnnbl. в которую входит пладелеu файла. Это упрошает совместныЙ JIОСТУП к K8TaJ10r3M D)lЯ пользователей. ПРI1f-шдлежаших ОДНОЙ rpуппе. Попобная возмОЖНОСТЬ подn.ерживаетСJl не ПО всеХ версиях UNIX (это не отноСитСЯ 1\ нашим тестоВЫМ системам). Следует также учитывать. что установка бита SGID nля исполняемоrо файла перс:крывает анзлоП!чную устаНО8К} ,lU1Я каталоrа. В некоторых системах бит SGID МОЖНО устанавливать дЛЯ файлов. не яМЯЮШНХСЯ испопняемыJ,.Ш. Тем самым запрашивается спеuи:з..льиыЙ режим блокировки файлов при их открытии. Stiсkубит БIП, которому 8 коде режима доступа соответствует восьмеричное Зliaчение 1000. назьmается stiсkубитом ("sticky"  липучка). Это ,ОРОШlfn пример 'Toro. как UNIX по мере взросления избавляется от ру,nиментов, но ОНИ продолжают следовать за системой по пятам. В системах с небольшо памятью, например PDP11/70. rле UNIX работала в СВОИ ранние rоды. требоналось. чтобы отлельныС nporpaMMhI постоянно остаВ8..,'lИСЬ в памятИ. TOI.т s(iсk)'бит был очень важен, rdK как Jilпрешi\.'1 ныrpузку проJ1Л!ММ IB памяти. Сеrодня в мире 25110JlЛCiрОIlЫХ мопулей памяти и быстроле'kТRУЮШИХ лИсК08ЫХ tlакОПlпслей !!оliсkубtп ННКОМУ не нужен, и современные я.nра llonpOCTY ип-юр"!руют ero. Если Sliсkубит устанавливается .для KaTaJ10ra. то БОЛЬШИНСТ80 версиИ UNIX ПОJВОЛЯЮТ улалять и nереименовывать ero файлы только в том случае, если пользователь является владельцем кзталоra, влзде.Jтьuем файла или nО!1Ъзователем root. Иметь одно лишь разрешение на записЬ в K3TaJ10r недОстаточно. Такая мера нanравлеН2 на то. tЛ"обы сделать каталоrи "роле Itmp более зашишениыми. rh Системы Sotar;s и HrUX не столь строrи в отношеНИl1 K3Td.Jl0rOB с a:.. установленным Sliсkубитом ПользователЬ. имеюШии право З3ШIСII R Ta-..::oi К3Т.1Лоr, может удалять Iз Hero файлы. лаже еслп он не я [\.....шетс)! ю. владельцем. Биты режимо Девять битов режима ПРС!lН31начены для Toro. qтобы опредеЛl.ПЬ. кто l' какие операции может выполнять над файлом. В UNIX нельзя устанавливать биты прав лоступа от.nельнО д.Ilя кaжD.оro пользователя.. Сушествуют разные Есп..! быть более ТОЧНЬTh!В. то этоrо не ПОЗROляет ДС:.18ТЬ траШ111ионная МОl1е.'1Ь безопасности UNIX. В Sol.ar;s и HPUX есть расширеНI-IЯ. изменяющt\е мноrие .аспекты традиuнонноА модt'ШI. Срелt\ npolt'ro В НИХ подnерживаются списки управлеНliЯ ДOCTYТIOM Теч не менее, .rП1 расшрения здесь не оЛl1СЫВ3ЮТСЯ 90 Частъ 1. ОСНОВЫ одминистрировония 
размер. врс:мя после1[Неrо обрашения. время последней модификации и тип файла. Всю эту информацию можно получить с помощью команды 1. I. ДЛя каждоro файла хранятся таюке сведения о времени последиеrо изменения а1lJибyrов, Т.е. caMoro индексноro дескриmора. Название данноrо атрибута ("ctime") вводит мнОrих люлей в заблуждение. так как они полаrают, ЧТО ЭТО время создания файла. На самом деле в нем хранится время послеmrеrо изменеиия onHoro из атрибутов файла (например. вла.иелеuа. кода режима), но не cro содержимоrо. Рассмотрим пример: , 1. 1 /01n/.h rwxrxrx 1 root Ьiл 85924 Sep 21 1991 IЬл/sh В первом поле задается тип файла и маска режима лоcryпа к нему. Поскольку первый символ  пефис, 3н8чloIт. переп нами обычный файл. Различные типы файлов обозначаются опносимвольными копами (табл. 5.2). Таблица 5.2. Кодировоние типов фоилов В листинrе комонды  т Hn фойnо о...МВО" Создоется УДОЛRется  J( мандой КОмОНДОЙ Обычный файл редакторы, ер и др. nп Каталоr d mkdir nпdlr. rm r Файл байториситироиаи.ноrо с rпkПod nп устройства Файл блокориеJiтироваIOюrо о mknod nп устройства Сохет ooctet(2) nп Именованный канал р шlmod nп СимволичесJC8.Я ссыпха 1 In . nп Следующие девять Сю'fВОЛОВ в ЭТОМ поле  ЭТО три набора битов режи ма. В листинre KOMa.ндhI 15 они прелстзмяются буквами r, w И х (соотвеТСТ8енно чтение, запись и въmолнение) В дан-ном случае илалелеu имеет все праиз дoc:ryпа к файлу, 3 остальные пользователи  только право на чтеНl1С и выполнение. Если бы был установлен бит смены идентификатора пользователя (SUID), то вместо буквы Х, оОозначаюшей право владелЬ1l8 на выполнение. стояла бы буква 5. Если бы был устаномен бlП смены илентификатора rpуппы (SGIDJ, то вместо букны х дЛя rpynпы тоже стояла бы буква 5 Последниi бит режима (право выполнения лля остальных пользователей) nрелставляется буквой с, Korna NЛЯ файла зала н Sliсkубит. Если биты SUID/SGID ЮIlf s(ickyбит установлены. а надлежашии бит 8ьmолнеиия  нет. эти биты предстамяются соответственно символами S и Т, указывающими на наJ1J.Iчие ошибки и иrнорироваНl1е ланны): атрибутов. Далее раположено поле со счеl"lИКОМ ССЫЛОК на файл. В нашем при мере ЗДесь стоит единица. свилетельствvющая о том. ПО /bin/sh  епинетвенное имя, под которым извеcreli ланный фаАЛ. Всякий раз при создании жесткой ссылки на фаил этот счетч-мк Уtlсличииается на единицу 92 Чость 1. ОСНОElЫ ОДМJ1НИСТрИрОВОНИ 
КаЖдЫЙ каталоr имеет минимум lIВe жесткие ссылки: одну из родитс:ль CKoro K8TWIOra и одну из специальноrо файла ': внутри caMoro кaT8J10rR. Символические ссылки в счетчике не yqитьrВaIOrся:. Следуюшие два поля  влaJlелеu 11 rpуппа фallла. В данном случае влsд.ельцем файла является пользователь root. и файл ПРИНадЛежит rpynпе Ып. В дсйствителъности ядро хрвиит эти данные не как строки, а как идентификаторы пользователя и rpуппы. Если символьные версии имен определить невозмоЖНО, в этих полях будут отображаться числа. Такое может случиться, если золись пользователя или rpуппы была удалена из файла /etc/pBsswd или /etc/group соответственно. Не исключено также, что возкикла ошибка в сетевой 8.lIМинистраТИ1\ИОЙ базе данных (см. rлаву 18). Затем следует поле, отображаюшее размер файла в байтах. Рвссмаlpивае мый файл имеет размер 85924 байта, Т.е. почти 84 Кбайт.. Далее указывается дата последнеrо изменения: 27 сентября 1997 r. В последнем поле листинl'3 содержится имя файла: /bln/oh. Для файла устройства комаlШа 10 выдает нескольКо иную информаuню. Нолример: , 1. 1 /d.8v/tty. crwrwrw 1 root daemon 12. О Dec 20 199В Id_v/tty.a В основном ПОЛЯ те же, но Вместо размера в байтах показаИЬJ старший и мЛaJltm!й номера устройства. Имя /dev/ttya относится к первому устройству, управляемому драйвером устройства 12 (В данной системе это драйвер терминала). При ПОИСКе :жестких ссылок может оказаться полезной команда Is -1. отображаюшвя для КlLЖIIоrо файла номер иидексноro дескриnторв. Н е вдаваясь в летали реализации файловой системы, скажем, что этот номер представляет собой индекс таблиuы, в которой перечислены все файлы системы. Жесткие ссылки, указывающие на один и тот же файл, булут иметь один и тот же номер. Система автоматичесКИ отслеживает время изменения. число ссылок и размер файла. С друтой стороны, правв доступа и lШентификаторы ПРИНaJl лежности файла изменяются явным образом с ПОмОШЬЮ команд cllrnod. chown и cl.grp.  Дополнительные флоrи 80 FreeBSD Во FreeBSD и дрyrnх системах, построенных на ядре 4.4BSD, имеется ряд дополннтелъных флаrов, которые MOryт бытъ установлены для файлов. эти флаrn связаны с расширею!Ой семантикой файловой системы. Например, флаr sappnd делает файл дoCl)'ТlНЫМ только для присоединения (это может быть полезно при создании журнальных файлов). А блarодар флаry schg файл становится неизменяемым и неУll8Ляемым. Узнать о наличии этих файлов поможет команда 15 -10: , 1.  10 /k.:rn.l. rX1::X=X 1 root wheel SChg 2019В230 No' 30 23: 51 /kernel "К" обозначает "кило"  метрическую приставку, которой соответствует миожитс.1Ь 1000. В вычислительНОЙ технике- этот символ имеет несколько ИНой смысл: 1 килобайт равен 21 О, или 1024. баАтам. Аиалоrичным образом меrnбвйт  это ие миллион байтов, а 220, или 1048S76, баllтов. r nОвО 5 Фойловоя системО 93 
Упраалятъ флаraми можно с помошью команды сhЛаgs chf1ag8 n08chg /ken.1 18  10 /k.rn_l rKrxrx 1 root wheel  2498230 Nov 30 23:51 fkernel Список доступных флаrов вы можете ПОЛyчJ{ть на страниuе И'НТерактип HOro руководства сhПаgs( 1). КОМОНДО chmod: изменение ПрО8 доступа Код режима доступа к файл можно изменить с помошью команды chmnd. Это право предоставлено только влацелы1У файла и пользователю root. В ранних UNIХсистемах код задавался в виде восьмеричноrо чнсла. В современн-ых версиях пода:ерживается также система мнемонических 060 значений. Первый способ удобнее для системноrо адМинистратора, но при :ЭТОМ можно залать только абсолютное значение режима доступа. А используя мнемонический синтаксис, вы можете сбрасывать и устанавливать отлельные биты режима. Первым apryMemoM комнины chrnod I1ВЛЯется спеuифи-каШ1Я прао доступа. Второй и последуюший apryмeнты  имена файлов, права доступа к которым подлежат изменению. При ИСПОЛЬЗОl:lании посьмеричной нотauии первая цифра относится к владелъuy, нторая  к rpyтme, а третья  к остальным пользовател..... Если необходимо задать биты SUlD/SGID или stiсkyб"т, следует указывать не три, а четыре восьмеричные цифры. Первая ш!фра н ЭТОМ случае будет соответствовать трем спешtaJ1ьныM битам. В табл. 5.] ПОказано восемь возможных комбинаций для каждоrо трехбиroпоrо набора, rде сим полы r. w И х обозначают соответстпеннО чтение. запись и выполнение. т аблица 5.3 КОДЫ пров доcrynо в KOMOI,Ae chmod Восьмеричное ч",оlО Двоичное ЧИ010 Мао:о режимо доступо о 1 2 3 4 000 001 010 011 100 101 110 111 rW rwx Например. команда cllmod 711 rnyprog предостзWlЯСТ W1адельuy все права, а всем Остальным пользователям  только право выполнения.. в табл. 5.4 представлены некоторые примеры мнеМОНllческих спеuифи каций. Если фаЙл, myprog является сценарием интерпретатора shell. ДО!lЖнО быть также зманО прано чтения Ш111 оста..'1ЪИhIX пользователей. Файлы сценариев, :JanycкaeMыe интерпретатором, открываются и чита.ютСII в текстовом виде. Двоичные файлы вьmолняются неПОСРС:ДС1'8еННО ядром, поэтому пля HI1X не НУЖНО змаВJТЬ право чтения. 94 Чость 1. ОСНОВЫ ОДМИНИСТРИРОВОНИЯ 
Таблица 5..4. Примеры мнемоническиХ спеЦИФИkОЦИЙ команды d1mod <J'""U Смысл Владельцу файла доnoлкнтcn:ьно дается. право ВЫI10JUiСНИЯ Владельцу м IpУППС I1peдocтa.вJ1Aeтc.51 I1paвo чтения/записи. ос. тальн.ым 11000000ват  право чтения Все пользователи лишаются прв.ва 8ыпалнения Влацельцу и l1'ynпe дается право чтения/выполнения. )'Cl'aHa.в JDtВ8СТСИ также бlП' SU1D; остальным I1OJlЬ3OВЗтелям запрещен ДOC'I)'II к файлу rpyrrne назначаются такие же прана. что и 8.118.дС11ЬЦУ Спецификация u+w ug'""rw,o""'r иg""'srx, О" СИМВОЛ и ("user") обозначает владеЛbUа файла, симвоЛ 9 ("group") rpyrmy, символ о ("others")  дрyrих пользователей, .си,пюл а ("аН")  всех лолъзователей сразу. Команды chown 11 chgrp: смена владельцев Команда сЬоwn предназначена ДЛjl изменения владелъua файла. а комаНда chgrp  Ш1я изменеНШI rpуппы. которой ПРИНадЛежит файл. ПерВЫМ apryмeнтoM обеих комам ЯВЛjlеТСjl ИМjl HOВOro владельua или новой rpynпы соответственно. Для Toro чтобы выполнять KOMaJ-ШУ chgrp. необходимо либо быть владельцем файла и входить В назначаемую rpуппу. либо быть пользователем root. В большинстве версий команд chO\\oll и chglp прелусмотрсн фЛЗI- R. который задает смену владельца или rpуппы не только C8MOro 1<:аталоra, но и всех ero подкаталоrов и файлов. Например, последовательность kOM(lHn: chmod 755 ........tt сЬоwn R aaatt ""'ПI4tt cbgrp R .tat't' ""'ШiLtt можно использовать ДЛjl конфитурирования началЬRоrо К8Т3ЛОr3 HOBor"O пользователя после котrnpоваНИjl в Hero стандартных файлов сuенариев. Не следует пьrrаться вьmОЛНjlТЬ команду сhowп д.ля файлов, имена которых начинаюТСjl с точки; chown R matt "'1Utt/. * Указанному шаблону поиска соотвеТСТВует также файл matt/.., ВСJlедст вис чеrо команда JlЗменит и влanелъца роднтельскоrо каталоr3. В неkОТОрых системах посредством команды chO\\oll можно изменять владельца и rpуппу файла одновременно. Ее синтаксИС в этом случае такоВ: chOWt\ пользователь: rpynпa фdЙЛ... Например: chcnm R matt: suft' ""'ПI4tt Версии U N 'Х. ОТНОСjlшиеся к семейству System V. часто позволЯЮТ пользователям ОТkазываТЬСjl от владения своими файлами с помощью команды chO\\oll. тоrда как в ВSDсистемах комаl-ЩY сhowп может вьmолнятЬ ТОЛЬКО суперполъзователь. Пра..,.ика показывает, что возмоЖНОСТЬ свободно....о изменеНШI ПРИНадЛежности фаЙлов привоlIИТ к мноroчисленным проблемам. r ла80 5. Файловая системо 95 
в частности к превышению дисковых квот. Лучше нcero, если выполнять эту команду разрешается только пользователю root. Команда umaslc задание стандартных прав доступа Встроенная shеl1команла umask позволяет меняТЬ ст8ндвртный режим доступа к создаваемым файла... Значение umask задается в виде трехразряд HOro восьмеричноro числа, которое соответствует отнимаемым прапам доступв. При сoздjl.нии файла код доступа устанавливается равным разнице между величиной. которую звпрвшиваст СOЗДjl.юшая фвйл проrpa"ма, и значеннем umask. В табл. 5.5 перечислены возможные комбинации битов режима для комвнды umask. Таблица 5.5. Схема КО.DИDОВОНИJ! значения umask Восьмеричное число Двоичное чисr.1O Маска режi-iма дас!уnо 2 3 4 000 001 010 011 100 101 110 111 rwx rw <x < wx w Например, команда wпask 027 лредоставляет все првва владельцу файла, запрешает читать файл rpуппе и не дает никаких прав осталЬНЪfМ полыопа теЛЯМ. По умолчанию значение umask равно, как правило, 022, Т.е. выполнять модифиК&uию фаliлв разрешается тОЛЬко ero владельцу. Не существует способа, которым можно было бы заставить пользователя придерживаться KOHKptTHoro значения umask, так как он В любой момент может изменить ero. Возможно, Оllнако, задание CTBH.aapтHoro значения umask в тех КDПИЯХ файлов .cshrc и .profile, которые предоставляются новым пользователям системы. О стандартных файлах сценариев читайте 8 lлаве 6. 0" 96 Часть 1. Основы одминистрирования 
Подключение новых пользователей ! k4aY W в большинстве СИСТМ подключение НОВЫХ ПОfJъзоваТе.Тlей и ула.чение старых  обычное llе.ТIO_ Операции. С8Я]dнные с ЭТИМ, просты. НО УТОfII- тельны. поэтому мноrие администраторы создают средства автоматизации даНt!оrо процесса. а затем переllоручают реальную работу своему ПО1\ющНН....lo' или оператору. Прзвильное управление t(СТНЫМИ заШIСЯ\Ш j!Н!1jlется заJlоrом беjOlI.lСНО сти системы. Редко используемые учетные записи становятся rлзвнымН мишенями атак хакеров, как и те ззmlСИ. пароль к которым леrко подобрать. Даже если Ш1Я подключения и уllа....lеНю:1 пользователей примеНЯЮТСjl CTaH дартные систеro.'lные >,,,ИЛИТЫ. важно понимать, какие при этом происходят ИзменеНШI R СИСТеме. 6.1. Файл /etc/passwd Файл passwd  ЭТО СПИСОК по'ьзователей. которые 11Jоестны системе В проиессе реrистраuии пользователя система обращаеТСjl к ланному файлу в поисках идеНiИфНl<атора пользователя, а та...."Же с целью проnерки BxollHoro пароля. Каждая строка файла описывает олноrо пользователя и содержит семь полей. разделенных J[80еТОЧИИJ\.f1i: . реrистраuионное имя; . зашифрованный лвроль (если не ислользуется файл скрытых паролсй; см. ниже); идентификатор пользователя: . идентифихвтор rpуппы по умолчвнию; . поле GECOS (лол ное нмя, номер офиса. ра60ЧНЙ и домашний телефоны); . начальный каталоr; r flOI!O 6_ Подключение новых пользовотелей 97 
. реrистраuионнътй интерпретатор команд. Вот лримеры лравильно составленных C'l'JIOK файла /elc/passwd: root: jsg8Y. lp6uWМo: о: о: The System.. х6096. : /: /kan/csh jl: НwехБЬМ8сТЗ/Е: 100: о: Jirn Lane, ЕСТ8З, I : /staff /jl: /Ьiл/sh dot.ty:oPOvdZ/s93ZiY: 101 :20: : /home/korbe1/dotty: /b1n/csh Файл /etc/passwd часто исполъзуетСjl несколькимн системами через СУБД. такую как N IS или N IS+. Более лодробную информаuию на эту тему вы найдете в rлаве 18. Ниже рассматривается назначение отдельных полей файла /etc/pass","d. Реrистрационное ИМЯ Реrиcтpauионные имена (называемые Т'o:lкже пользовательсКИМИ именами) должны бьnъ уникальными. Как правшю. онИ содержа'Т не более восьмн символов.. Если используется база данных NIS или NIS+, длина имени оrpаниченз 8 символами независимо от операuионной системы. Ранее реrистрационные имена моrли состоять только из алфаВИТНОЦllф рОБЫХ си-мволов. В современных система.х допускаются любые символы. кроме двоеточий и символов новой строки. Тем не менее, лучше придерживаться старых правил и ие создавать имена .длиной более 8 символов. Это позволит избежать конфликтов с почтовыми системами н стаРЫ1\'IИ проrpаммrt1\Щ, а также raрантировать, что пользователи cMOIyr Иметь ОДИl-lаковые реrистраци онные имена на любой маШИне. Помните: сеrОДШI у вас одни КОМПЬЮТt:ры. а завтра MOIyr бьrrь дрyrие. Реrистрационные имена MOIyr содержать как строчные, так и ПРОПll(:;lIые буквы Правда, большинство ПОЧТО8ЫХ систем (включая sendmail) nредпола raeT. ЧiО исполъзуются ТОЛЬКО строчные буквы. По этой причине мы рекомендуем избеraтъ употребления прописныХ букв В реmстраuионных именах за исключением случая. Koraa пользователям не нужно работать с электронной почтой. Следует выбирать такие реrистраuиoнные имена, которые можно леn<о запомнить, поэтому имя, состоящее из случайной последовательности бyl\."Е, является не совсем удачным вариантом. Избеrайте также юrичек и ПРОЗRИЩ. Поскольку реrистрauиоtfные имена часто используют 8 адресах электронной почты, полезно установить стандартную процедуру их ФОРМИРОВ8ННjl. ПОЛk зователям должна быть предоставлена RОЗМОЖНОСТЬ зелать оБОСНОRi:!.ННЫf' доrадки о реrистрauионных именах дрyr лруrв. Имена, фамилии, инициалы и сочетания этих элеменr08  БОТ приемлемые варианты для схем форми рования имен. Любая жестко заданнаjl схема в конечном итоrе приводит к пояnлt:IIИIO дубликатов имен или СЛИШКОМ ДЛИННЫХ имен. поэтому иноrда придеТСjl делать исключения. В случае ПОЯ1Шения длинноrо имени можно в фаиле /etc/m8Jl/aliases задать две версии одноro и Toro же имени, по крайней мере, для 'Электронной почты. o Подробно О почтовых пceBdOHUMtJX раСС1t"аЗШIО в парарафе /9.4. Например. схема имеНОRания может быть такой: nерRЫ-Й ИНИШI.Ul н фамилия К8жцоrо сотрудншса. Пользователь Брент Браунинr (Вrеп( BrO\\llliI1 S J. таким образом. превратится в "bbrowning", но девять символов  СЛИШКОМ Во FreeBSD нопускаются имена дЛиной До 16ти символов, а в Red Наl  до 32x. 98 Часть I Основы ОДМИНlo1стрировония 
MHoro. Лучше присвоить этому пользователю реrистрационное имя "Ьrеп(Ь". а "ЬЬrownшg" сделать элементом файла aliases: bbrowninq: brentb o Если в орrанизаЦ1f1f есть rлобальныЙ файл почтовых псевдонимов, то все новые реrистраuионные нмена полжны отличаться от любоrо псеВдонима. указанноro в этом файле. Б противном случае почта бупет доставляться не новому пользователю. а пользователю с таким же псевдонимом. Korдa пользователь работает за несколькими машина"rи, то ре..истраци онные имена должны быть уникальным в ПВУХ аспе....."Тах. Бопервых. необходимо, чтобы имя KOHKpeтHoro пользователя на всех 1\'lашинах было оn.ним I тем же. Это предусматрипается rлot.ВНЫМ образом для удобства  C8Moro пользователя и ацМlfнистратора. Бовторых, конкретное реrистрационное имя нсетда должно относиться к одному и тому же лицу. Ес!ш В сетевой среде одно ИМjl принадлежит ДЕ}')..! разным ПОЛЬЗОR8телям, ЭТО приводит к возникновению слабых мест в системе защиты. Например. если записи SCo((@bolllder и sco((@refuge относятся к разным ПОЛhЗователjlМ, ТО при определенных обстоятельствах оба пользователя MOIyr ЛОЛ)'ЧИl'b 1l0С1)'П к файлам друт друта. Вопросы эквutJалентностu реuстрацuо,шы.х. имен рассматриваются в пapa рафе 21.6. Опыт также показывает, что дублируюшиеся имена сбивают с толку пользователей по'rrовых систем. Сама почтовая СlIстема различает. кому IfМeHHo прина.длежат имена, однако ее пользователи при отправлении писем чзсто ошибаются адресом. Зашифрованный пароль Пароли хранятся в файле /etc/passwd в зашифрованном 8Ю!е. Если только вы Не производите D ЕSкодирование в уме (в этом случае мы очень хотели бы с вами познакомиться), необходимо либо установить содержимое этоrо поля с помощью команды passwd (или yppasswd. если используется база данных NIS), либо скопировать CтpoJ...'Y. содержащую Зi:1шифроваННЫII пароль, ИЗ друroй учетной записи.. Редактируя файл /e(c/passwd д.I1Я создания мовой учетной запнси. в поле З3.lJЛlфрованноrо пароля поставьте З8еЗДОЧJ...'У (*). Она воспрепятcrвует HecaHK ционированному использованию учетноА записи до установки реальноro пароля. Ни){оrда не оставляйте это поле пустым. иначе в системе защиты возникнет оrpoмная брешь, поскольку для доступа к такой учетной записи пароль не требуется. Б системах. rде применяются станлартн:ые DЕSпароли. длина незашиф pOBaHHoro пароля не может превышать 8 символов. Более длинные пароли допускаются. 1i0 значащими в них будут только первые 8 символов. Зашифрованный пароль будет иметь дЛину 13 СИМ80ЛОВ неЗ<lIШСИМО ОТ длины исходиоro пароля. Б ВJ1rоритме- используется случаиная ДDУХСИМНОЛЬН3J.I "примесь". чтобы одному ИСХОДJIOМУ паролю соответствовало несколько зашифрованных форм. Таким обра.:юм, факт выбора пользоватетlМИ одина КОВЫХ паролей не может быть 8ыявлен путем просмотр8 файла pВSS\\o'd. Не во всех системах пзролн Шl1фр}ЮТСЯ с помошьюа.'Irорю'ма DES. Закодированные пароли МОЖНО копировать TO.l'JbКO межлутеми ко"mьютсраМН, на которых используется олинаковый а!1rори-тм UD1фрования. r лава 6. Подключение новых пользОвателей 99 
(ьв] в HPUX сушествует "поверительньrfll режим". при которОМ llопускают,"я пароли любой дЛины. Это лостиraется пyrем MHorOKpaTHoro приro.'lснеЮ-IJI алrоритма DES. по одному разу для кажлоrо 8симnoльноrо cerMeHT3. {f:'\  в Red На! и FreeBSD лоддерживаются ларол.. МО5, которые также MOrvт  t-  иметь произвольную цлину. зашltфрованны такИМ спосоБО""1 парОЛII леrl(О . распознать, так k8K ОНИ имеют дnину 31 СИМВОЛ и вcerna начинаются с лоследовательности "$1$". С ПШlвлением быстродействуюших аппаратных срепств и эффективных алторитмоn шифрования все более очевидной стаНоШПСjl необходим<Х. ть прятать зашифрованные пароли nyreM помещения ИХ в отдельный файл. нсл.оступныA мя всеобшеrо чтения. Зто называется механизмоМ теневых паролей. Полное описание теневых паролей привелено в парarpафе 21.3. В Solaris теневые пароли обязательны. Необходимо МОllИФИЦИРОВU1 ь ф.lfi.'1 теневых паролеА при подключении и отключении пользоватлеА. чтобы он был соrласован с файлом /elc/paS5Wd. Структура файла Sl18dow . Solaris олисанв в параrpафе 6.4.  ИдеНТИфИКQТОр ПОЛЬЗОВQтеля в большинстuе современных систем идентификатор поЛl>301J31I:...'lЯ (UID)  это 32разрядно. иелае число. пиал,зоне от О по 2147483647 НО МЯ обеспечения совмести.мОСПI со старыro.'IИ CCTeMaMI.' мы peKO"CI-Iдем. чтобы значение caMoro старшеrо идентификатора по возмаЖНОСПi НС:: превышало 32767. В теJ...'УШИХ версиях Liпuх максимальное значение L'I D равно 65535. но подобное положение может измениться в будушем. По определению пользователь root имеет идеНТИфНКiПОр О. В большинстве систем естЬ также псевлопользователи Ып (J.шентификаrор 1) Ii dat"tnon (идентификатор 2). Как правило, псеlШоимена помешаютСЯ в начало ф;1ЙЛfl /etc/passwd, и им НaJначаЮТСjl низкие идентификаторы. Чтобы JарезерВJ.lрО вать побольше номеров ДЛЯ неперсонифиuированных пользователей, pel(O менпуем присваивать реЗJ1ЬНЫМ поль.:юватеЛЯi'<1 дентификаторы, haLHfl-lilЯ с номер. 100. Нежеllательно создавать более одной учетной заПИСН с идентифик.;tТо ром О. Может пока.заться улобным иметъ несколько суперПОЛЬЗ0нате..'1ЬСКI-II,,; записеЙ с разными интерпраторами комаид и паротlМИ, но в лейсПшТI....lь ности это создает llополнительные бреши в системе зашиты " ПРИ80Л 1 П к лишним ТРУllНОСТЯМ. Если нсколькнм ПОЛЬЗОlJатетlМ необходнмо .':')ыть anминистраторам'И, пусть они примеНjlЮТ команду sudo. Избетайте nORТopHoro использоваНШI идеН111фикаторов, nв.же ИllеНПlфИ каторов тех пользователей, которые уволились из ортанизвuии и учетные записи которых удалены. Такая мера предосторожности позволит ИJбсл::ать пyrаниuы. если фаA.iIЫ впослепстпИИ будут восстанавливаться из резерШIЫХ копий, rlle пользователи илентифицируются по номерам. 8 не по реrИСТрil uионным и.менам. ИllентиФш(вторы llОЛЖНЫ быть уникальными в предслах осей ОрПlllitЗа цни. Иными словами. неоБХОllИМО, чтобы ЗalIанный идентнфикатор COnТl'T ствовал опному и тому же реrистраuионному имени Я физическому Лlшу на k8Ждой маШИне. Нарушение уникальности I-шенrификnторов приведет к появлению про6лем безопасности в такой системе. как NFS. а также может вызвать замешательство у пользователей. переход.ящих из одной риБO"l'СЙ rpуппы в lIPyryю. o Бол.е оеталЬНоЯ информация об N FS предстамена . ..о.е /7. 1 00 Чость 1 OCOBЫ ОДМИИСТРИР()80НИR 
Трудно соблюдать уникалънос,-ь идtНТИфИkаторов. KorllB rpуппы ко"'ШЬ ютеров апминистрируются разными 'nИЦ8МИ и .паже орraнизаuиями. Это проблема К8_К техническая, так и пQЛИТИЧесnя. Лучшим решением булет создание uентральной базы данных, содержашей ДJllI каЖдОro пользователя свою уникальную записЬ. Мы у себя самостоятельно создали такую базу данных и назвали ее Uniquid. Проше ncero назнвчить хаждой rpуппе в пределах орrанизаиии свой диапазон идеlПИфИкаторов и позволять раcnоря жаться им по своему усмотрению. Проблема не решИ'Тся ПQЛкостыо. но вероятность совпапений значительно уменьшитСЯ. nd Идентификатор rpYnnbl по умолчанию Идентификатор rpуппы (G l О) предстамяет собоlt 16 или 32разрядное цt:лое число со знаkОМ или без. Идентификатор О зарезервирован дnя rpynпы с именем root или wheel. а идентификатор 1 обыч-но принадлежит rpуппе dаеrnол. Имя wheel было анаЛОlOМ учеnlllОЙ заnUСIJ root tJ ОС TOPS20. rрутшы определяются в файле /ete/group. в старых версиях UNIX пользователъ Mor быть членом только одной rpуппы. Для выбора эффекти-в Horo идеНТИфИ'J(атора rpуппы. используемой по умолчанию при входе в систему, брали знвчение пол" GID из файла /etJ:/passwd. Новейш"е версни UNIX позволяют пользователю быть членом До 16 трупп одновременно, лоэтому поле GШ в файле /ete/passwd ннкоrда не используется и. ло сути дела. ЯВIlяется рудиментом старой эПоХИ. Тем не менее, значение ПОШI продолжают включать в СПИСОk rрупп пользователя. В HPUX список rpупп пользователя ИННЦИ3JlИэируется во вреМ51 реrnстрации на ооновании файла /еtсjlоgiлgrоuр, а не /elc/group. Мы рекомендуем сделать файл /etcjlogillgroup символической ссылкой на файл /ete/group, чтобы ОС HPUX вела себя так же, как" прутие системы лри работе n неСКОЛЬkИХ rpуппах. Единственный раз. коrда эффС"'-ТНВlfЫЙ идентификатор учитывается,  при создании ноВЫХ файлов и каТ8ЛоrоВ. Если используеТСjl семантика BSD, новые файлы наследуют значение GID у CBoero родительскоro К8талоrа. В противном случае им назначается текуший эффективный идентификатор rpупп--ы, которой принадлежит мааелец. Изменить этот lUlеmификатор можно с помощью комаНдЫ newgrp. Большинство систем по умолчанию не ИСПОJIЫУЮТ семантиJ...'У BSD, но ее можно активизировать с 1l0МОШЬЮ опции grpld KOMaН1llif mount либо путем установки для нужных каталоrоn бита SGID (2000). Во FreeBSD этот режим всеrда ВJC.11ючен. так KdK R данной системе нет kоманды newgrp_ 111 Поле GECOS'. Поле GECOS Не имеет четко опреnеленноrо синтаксиса. Первонзчально в ВеН Labs ero ИСПОЛЫОВRЛИ ШТЯ реrистраuин ИRформации. необ'l(одимоА прн лередаче лпкCтtIЫХ заааннй из UNIХсистемы мэйнфрейму, работаюшему ЛоД ynравленнем G ECOS. Сейчас осталось одно название. Она дОСТ)'ПЮI ло адресу !\p://ftp.colorado.edujits/ullixjsrc/uniquid.tnr.gz. Korna фирма НопеywеU приобрела комльютернсх лодразде.'1СНИС компании Gепеral Electric, название GECOS поменяли На GCOS. В настоя-шее время испо.1ЬЗУЮ1"СЯ об". варианта написанИJ{. r лово 6 Подключеие новых пользователей 101 
Как правило. это поЛе rсполЬJУЮТ для хранения персональной инфор маuии о каждом пользователе. Некоторые nporpaMMLI )8меняют символ '&' в поле GECOS реrnстраuионныМ именем пользователя, 'по позволяет HeMHoro сократить объем вводимых .ваННЫХ В частности. это относится к проrpаммам liлgеr и sendrnail. Лучше Не ПОЛaJ'аТЪСjl на подобную возможность. n porpaMMa linger интерпретирует разделенные запятыми элементы ПОЛjl G ECOS в слелуюшем порядке: . полное имя (часто используетСjl ТОЛЬКО это поле); номер офиса; рабочий телефон; помашН-ИИ телефон. е помощью коro.'Iа.нды сhfп (passwd .g в Solaris) можно изменять инфор маuию, сопержащуюся R поле G ECOS. Эта команла полезна МЯ ведения и обновления списка телефонвbl'( номеров. но еЮ часто злоупотребляют: пользователь может изменить информauию так, ЧТО она станет нецензурной или некорректной. В нашем факультетском кш.mыотерном центре, КОТОрЫЙ посещают толпы старшекурсников. эту команду пришлось отключить. Начальный каталоr При вхоле R систему пользователь попадает 8 свой начальный каТ3ЛОf. Если на момент реrистрации у пользователя нет начальНоrо каталоrа, ВЫIЮЛИТСjl сообщение Н3ПOllобие "110 home direсюry" (начальный катв.лоr отсутствует). В некоторых системах поnyскается продолжение ПРОllедуры реПfстраuии, и пользователь попадает в корневой К8талоr. Есть системы. R которых ретистраuия без начальноrо каталоra не разрешена. Если начальные каталоrи используются КОJD1екrивно посредством сетевой файловой системы, то в случае проблем с сервером юrи с самой сетью они MOryr оказаться Rедоступными. 0" Реrиcrpацианный интерпретатор команд В качестве реrистраuионноrо интерпретатора, Как правило, задаетСjl Вoume _Ьеll или С shell (соответственно /Ыл/sh или /Ыл/сsh), но в принципс это может быть любая ПРОll>амма. В большинстве систем по }'Молчанию используется иmерпретатор Boume shell, которыА запускается. если COOTвeт ствующсе поле в файле /etc/passwd не указано. К друrим распространенным интерпретаторам относятся ksh (Кот shell). bash (ВОllmе.gaiп shell) л Icsh (усоверщенствованная разновидность С shell). Мы реко.мендуе.ч для всех новых пользователей по у.чо.lчаниlO устанавливать интерпретатор tcsh во мноrих системах ПОЛЬЗ0ватели Maryт измеНИТЬ интерпретатор с помощью команды chsh. В Solaris m'lШЬ суперпользователь имеет право менять интерпретатор друrоrо пользоватеЛjl \С помошью команды passwd e). еслн ТОЛЬКо не используетс" база данных NIS или NIS+. Фаliл /etc/shells содержит список тех интерпретаторов. которые пользователь может выбирать с помощью команды chsh. Пользователь rool может применять 31)' команду без оrpаиичений. Проверьте, чтобы .лементы файла /etc/sbells содержали полные имена команд. 102 Часть I ОСНОВЫ администрирования 
6.2. Файл /etc/master_passwd во FreeBSD Во FreeBSD настояшИМ файлом паролей 'lВляется файл /ete/master.pas5wd. ФаАл /etc/passwd оставлен в пелЯ)( обратной СО8местНМОСТИ, но ОН тенери руется на основании ..rлапноrо" файла и НИJ(оrпа не редактируетСjl напрямую. Изменения. ПРОИЗВОДИМЫС в файле /etc/master.passwd с поro.ЮЩЬЮ команды "ipw, passwd. сЬСн. chsh или chpass. аВТО1\'18тически отражаются на файле /ete/passwd. rлавный файл создается с ломошью утилиты pwdmkdb_ Файл master.passwd выступает в роли TCHCBoro фаила паролей R T01\'1 смысле. что он доступен для llросмотра ТОЛЬКО ПОJlьзовате.J1Ю root (8 файле /etc/passwd не содеРЖИТСjl никаких парапей). Б нем И1\'lеется три пополtlИ тельных поля: класс релtстраuии; время изменения паром: срок пеЙСТВИjl учеТНоА залНС1-1. Поле класса реПlстраUИИ (если ОН задан) содержит ссылку на запись 8 файле /еtc/lоgiл.еолr. Клвсс реrистрации олредел"ет пользовательские квоты нв использование ресурсов и друrие пара метры реrистрации (см. следуюший параrpаф). Второе поле необходнмо для реалязации механизма. известноrо как устаревание lIаролеи. Это поле содержит BpeMjl (ЧlfСJlО секунп. прошедших от началв эпохи UNIX  1 января 1970 r.), ло истечении Koтoporo пользователь полжен будет изменить свой пароль. Если оставить поле nyстым, пароль никоrда не устареет. Нам не очень нравится идея }старевания паролеЙ (см. ruoраrpаф 21_3)_ В третьем поле хранится дата (в том же формате, что и 8 предыдущем случае), после которой учетная запись пользователя станет недействительноА и он не сможет зареrистрироваТЬСjl 8 системе. если только администратор не сбросит это поле. Поле также можно оставить пустым. чтобы учетнаjl запись НИkоrда не устарела. 6.3. Файл /etc/login.conf во FreeBSD Файл /еtе/lоgiл во FreeBSD содержит параметры учетных записеи llл" пользователей и rpупп. Ero формат напоминает формат файлов tепnсар и printcap. Файл состоит из разделенных дnоетОЧ:ШIМИ пар ключ/значение 'и булевых флаroв. Коrда пользователь реrистрируется в системе, поле класса рслtстраuии в файле /ete/master.pas5wd олределяет, какую зались из файла /еtс/lоgiл_солr следует применить. Еслн класс не был задан, подразrмевается класс default. Запись в файле /еtсflogiп.сопr может задавать следуюшие параметры: kВOТЫ ресурсов (маkСИМалъный размер процесса, ЧИСJlО открытых файлов и т.д.); реrиcrpационные оrpаничения (KOI.na можно RХОПИТЬ 8 систему и какова дЛительность сеанса); . стандартные значеНИjl переменны:х срепы; стандартные путевые имена (переменные РАТ Н , MANPAlli и др.); местоположение файла. солержашеrо сообшеНI!е лия; параметры доступа к узлам и терминалам: стандартное значение umask: r лова 6. Подключение новых пользователеи 103 
реrистраuионные пзраметры1 (минимальная wшна rшроля, срок устарева- ния пареля). В С.'Iедуюше примере ДЛЯ CHCTeMHoro ацминистрвтора переопредеJ1ЯСТСЯ ряд стандартных пар8метроn: sysadmJj: , : i9лоrеnоlО9iп: \ : requirehome@:\ : maxproc"u:'11 imi t.ed: \ : ореflеs"uлlmi ted: : tcdefaul t: Пользоиателяro.'I, имеЮЩII1 к:шсс реrистраШll1 sysacimirJ, разрешается реrистрироnаться. паже если их ",ыя упоt.lянуто n файле /\'ar/rull/nologin Они MOryт входить n систему, даже если У них нет Н8чальноrо K8T8J10ra (это ПОЗ80ляет релtСТрИРОватъся. коrда сетевая файловая система не работает). Пользователи класса 5 ysaciml n MOryт запускать любое ЧИСЛО проuессоn и открывать произвольное количестВО файлов.. В последней страке подключа eтcjl содержимое записи defaul t. 6.4. Файл fetcfshadow в Solaris и Red Hat ИСПОЛЪЗ0вание тeHeвoro фаАла паролей n Solaris ЯВШlется обjlзате.'lЬНЫf\l. В Red НЗI .3.JИI работы с ним требуется наличне пакета slladow. Файл /etc/shadow доступен для чтения только суперпользовате.I1Ю и препнnзначен Ш1Я хранения заuпlфрованныx "аралей попальше от любопыт HblX rлаз В нем также содержится учетная информация, которая недоступна n файле /ttc/passwd. в отличие от файла mas!er.passwd по FreeBSD. файл shadow не включает n себjl фаАл passwd. и последн-иА не reнерируется аВТО!\.1атически при изменении TeHeBoro фаЙ11а. Оба файла необходимо сопровождать неза8ИСИМО друт от дрyrз. Подобно файлу /etc/passwd. файл /etc/shadow содержит одну СТРО"-'У I!ЛВ каждоrо ПОЛЬЗ0ватеШI. Каждая строка состоит из 9 полей, разделеННЫ1< ..1nоеТОЧJ1J1МИ: реrш:траuионное имя; .Jашифрованныи пароль; вата последнеrо измененИЯ паро.1lЯ: lItнимаJIЬНО': число дней меЖJlУ IIЗМlIеI-lI1ЯМИ пароля: MaKCIIM8J1bHOe число .з.ней между изменеНI1ЯМИ пароля: число дней. которое должно остаться до истечеliШI срока деlkТ811Я пароля. чтобы бь1ЛО выдано прeдynрежденне: период ОТСУТСТИИjl активности, после KOToporo Уl.lеТllilЯ записЬ бупет отменена; ерш.: деистuия учетнои з.-IIlИL'II; флаrи. Лишь псрвы два поля полжны быть неll}СТЫМИ. ПО.'1я пат lад.lJ(l1''Я n внде LПlсла дliей (не секунд), ПрОШСДШII'< с 1 ro ЯНRаря 1970 r. Это ОТЛИЧi.lется Имеется жесткО(: оrpаничсние на ЧИС.'10 Ilроцессов И 01 крыты,< файлов. с каторыш \.южет работать JLдpo, но искусственно это orpaHl-I'Jение задать t-IС.1ЪJЯ 104 ЧОСТЬ 1. Основы админi'lСТррОВОНИЯ 
от стан.партноrо способа вычисления времени н u 'J IХсистемах. К счастью, задавать эти поля можно с помошью комАнДЫ usennod. Типичная запись вытляllИТ так: mi1lert: ir.NO. V1\sclWn. : 11031: : 180: 14: : 18621: Вот более подроби описан-ие каЖдОro поля: Реrnстраuионное имя берется из файла /etc/passwd. Оно СFlязывает запнси в фаR;шх passwd и shadow. Зашифрованный пароль идентичен тому. }\OTopыl ранее хранился н ФаЙlе /etc/passwd. Поле последнеrо нзменения содержит вре,""я. Korna пользоuзтель пос,ед ниА раз менял свой пвроль. Это поле оБЫ1IНО JаПО;IНЯе.тся ПрОI"рам\юЙ /ыл/asswd.. в четвертом поле задается число пней, которые должны nponnl. пржде чем пользователь сможет снова J.iзменить параль Эта ВО1МОЖНОСТЬ кажется нам бесполезной и даже опасно""'. если в течение указанноro времени будет обнаружено нарушение в систе\.fе ЗDШИТЫ. Поэтому "'Ы не рекомендуем устанавливать данное поле . В пятом поле задано максимальное число днеЙ между д-вумя изменеН"'ЯНf пвраля. Это пает возможность 8llминистраторам заставлять пользователем МеНЯТЬ свои пароли (СМ. параrраф 21.3). В 141nШ' максимальное время жизни пароля определяется суммой JН3ЧСНllft JliH.rHoro 11 седьмоrо полеЙ. . В шестом поле З811SНО количество пне}\. ОСТ8ЮШИХСЯ по момента устареязния параля, t.:orдa nporpSMM8 logi" .должна начать предупреждать пользователя о rpядушем изменениИ пароля. В Solaris и Lil1ux седьмое поле интерпретируется поразНОМУ. Solaris поступает так: ес.,ilИ пользователь не реrистрировался в системе в течение ух:азанноrо времени. ero учетная 13.пись будет отключена. Неисполъзуемые учетные записи являются любимой ""fИшсньЮ xaKe ров, а данное поле пает 8llминистратору 80ЗМОЖНОСТЬ своевременна предотврашать атаЮi. Оно. ОПНако. работает TO;lbKO R ТО\' случае. Korп.a ИМЯ пользователя можно наЙТI1 в фаf1Ле /var /аdшflustlOg. Пользователи, которые никоrда Ht реrИСтрl1рОВались 8 системе, не MOryт бьrrь отклюЧI':НЫ аНтоМатичес...."И. ОписаllНhll1 мехаНIПМ не очень хорошо работает в сетевой среде. поскольку на к3ж.Jloм "ОМПI.ютере имеетсЯ свой файл lastlog. В Lil1ux все осуществляется совершенно 11O.J.PyroMY. Данное поле залает, сколько .дней после устаревзния паралл необ1(ОдIOoЮ ждать, прежде чем отменить учетную запись. Зто СО8ершенн(\ неоправданное изменение, так как механизм. испопьзуемыЙ я Solaris. намното удобнее. Ситуация усyryбляется также тем. что n .дОКУ\fснтаШflf к Liлuх наJнаLlсние поля описано дополыю расплывчато и нечетко. Нам пришлось обраnlТЬСЯ к исходНым текСТ'3М СlIстеМЫ. чтобы понять. как она работает. . В восьмом поле задана дата. Korna учетl-1аи J3П1iСЬ б}дет отменена. После этоrо пользователи не CMOryr зпрепtстрироnаться R СИ{. TC\.fe. пока 8.lIМинистратор Не сбросит панное попе. Ес.'lИ поле остнмено пусты!. учетная запись всеrда будет 3I<1"ИВНОЙ. Девsпое поле в настоящее время всеrда остается п"сты;; оно зарезерпи ровано на БУД}1Uее. 105 r 110BO 6. Подкnючеие новы)( пользовотелей 
Теперь, коrда мы выяснили назначение полей. павайте вернемся к рассмотренному выше примеру: ml.llerr.: inNO. V,AsclWn. : 11031: : 180: Н:: 18621: в этой записи rоворится о том. что пользовзте'IЬ millert nослеПНI1П ра] менял свой лароль 14ro марта 2000 r. Следуюшиl1 раз Ilароль должен быть изменен через 180 дней. За две недели до этоrо пользователь начнет получать предупреждения о необходимости смены пароля Учетная запись деистви телъна до )\ro декабря 200\ r 6.5. Файл /etc/group Файл /ele/group содержит имена UNIХrpулп и списки членов каждом rpуппы. Например: wheel:'" :0: root, evi, 9arth, scot t, trent csstaff:*": }O:lloyd,evl. student:": 200 :dotty Каждая строка представляет одну rpynпу и содержит четыре поля: . имя rpYnnbI: . зашифрованный параль (устарепшее, редко использvемое поле). . ИJ1ентифи:катор rpуппы: список 'DIeHOB (разделяются запятыми). Как и в файле /etc/passwd. поля разделяются двоеточиями. В некоторых системах мина имени rpуппы не .должна превышать 8 символов. Несмотря на наличие поля пароля (с помоШьЮ KOToporo пользоиатели MOryr присое пиниться к rpуппе, выполнив команду newgrp), последниЙ задается редко. В большинстве случаев в это поле вводится звездоч-ка (.). но можно оставИТЬ ero пустым Будьте аккуратны. чтобы случайно не вставить пробелы между именамИ пользователей rpуппы. В большинстве систем любая ннформаuия после nepBoro пробела иrнорируется. Имена rpyпп и их Идентификаторы должны быть Сдliнаковыми на всех компьютерах, получаюших совместный дocтyn к файлам посредстпом N FS. Этоrо трупно постичь в reтероrеннои срепе, поскалы,]' разные операщюнные системы используют разные идентификаторы шIя одних и тех же rpупп. Мы считаем, что по умолчанию пользователь не .должен реrnстрировзться как eH системной rpynпы. Это также касается rpупп, создаваемых поставш" ками, в частности stаП. Чтобы избежать конфликтов, связанных с идентификаторами стандартных rpупn, рекомеНдУем выбирать идеитификаторы локальных rpупп. начиная с номера 100 иля последнеrо номера стандартной rpуппы. в завиСИмости от Toro, какой из них больше. 6.6. Подключение пользовcrrелей Прежде чем создавать учетную запись ДJlЯ ItoBOro ПОЛЬ10вателя. краЙне важно потребовать от Hero попписать соrлашение о правилах работы пользоиателей. (Как'?' У вас нет тaKoro соrлашения? Немедленно ПрО'-IПlте параrpаф 27.1. чтобы узнать, .nnя чсrо ну'..кно подобное соrлашение и как el'o составлять.) У пользователей нет особых причин ПOllписывать соrлашение. поэтому в ваших ннтереса.'( убедить их сделать это. После Toro ка" учетная :sаПИСЬ 106 ЧОСТI:. 1, ОСНОВЫ ОАМJ..1Н1СТрJ..1рШЮНИR 
создана. добиться ПОдПИСИ может оказаться пр06лематично. Так что лучше получить ее заранее. Процесс подключения HOnOro пользователя СОСТОИТ из целоrа ряда этапов. Три из них определяются системнымИ требованиями. два связаны с форМl1роваtmем полыовательскоfil срены. а еше несколькО Mor)'T понадобиться дня uелей системноro администрирования. Обязательные этапы: . отреда...'Тировать файлы passwd и shadow с uелъю со:шания учетной записи пользователя: установить исходный пароль: соЗдать НачалЬный каталш. .nля Honoro пользователя. ПОЛЬ30fJamелыжuе этапы: . скоппроизть В начальный кзталоr пользователя стаtlлартнЫС конфиryра uионные сценарии: установить катзлоr электрОННОЙ почты и создать почтовые псевдонимы. AdMUHucmpamUfJHble этапы: . .добавить запись HOBora пользователя в файл /etc/group; установить писковые квоты; провернть правИJТЪНОСТЬ создания учетной lаписи Кв.ждьrй постзвшlfК ОС предоставляет свои средства .nля аВ'ТоматиЗ8UИИ этоro "роиесса. НО ниже мы подробно опишем все дейСТВIfЯ так, как если бы их пришлось выпонять вручную. Все эти операции необходимо выполнять справами сynерпользователя, зареrИСТРИРОD8ВШИСЬ в системе ПОД именем root илJ.l' воспользовавшись проrpаммой sudo.   Редактирование файлов passwd и shadow Чтобы безопасно ре.nактировать файл passwd, выполните команду vipw, которая запустит текстоВЫй репактор с копией файла. Ло умолчанию выбран редактор vi. но эту установку можно изменить, задав новое значение переменноfil среды EDITOR. Существование временной копии файла служит cвoero рода блокировкой: команда vipw позволяет толЬко одному пользоиателю редактировать файл pass\\'d. Korдa пользователь выходит из редактора. команда vipw заменяет нсходный ф31t.1'J passwd оТрe.nа....'ТироВанной копией. В Solaris команда '.ipw спрашивает. хотите ли ВЫ отредактировать файл shadow после окончания работы с файлом passwd. Необхолимо ответитЬ "да". Во FreeBSD KOMat1дa vipw редактирvе-т файл п.аstеr.раss\\'d, а не /etc/passwd. После внесенИЯ изменений она вызывает утилиту pwdnlkdb. которая создает файл passwd .. лие версни файла п.аstеr.рasswd (oJIНa содержит зашифрованные пароли и доступна только пользователю root. а дрyraя не содержит паралей и .дocтyrтнa .nля всеобшеro обозрения). Например, .nля созпаНJ1Я учетной записи tyler необходимо добавить в файл /etc/passwd следуюшую строку: L.уlеr;*:lОЗ:lОО=7уlеr Stevens. ЕСЕЕ З27. х1919. :/home/staff/tyler: /bJ..n/csh Обратите Rнltмаllие на отсутствие ззшнфроваllНОro пароля. Если бы в системе ИСПОЛЬЗОВaJiСfl файл shadow, мы бы запиСали R соответствую шее поле символ 'х' и доБЗВIIЛИ В фай..'1 /etc/shadow такую строку: уlеr:''':==:::lВ621: r лова 6 Подv.лючение новы): ПОЛЬЗ0вотелеи 107 
В этой строке rоворится о ТОМ. что у пользователя 1)"ler нет зашифро BaHHoro парОЛJ1, 8 учетная запись деnСТRlIтельна по 31 ro декабря 2001 ..... Задание ио:одноrо пароля СУПСРПОЛЬ30В8ТeJТb может IIзмешпь ппроль любоrо пользователя с ПОМО шью следующей комаlillЫ: t p..."d пОЛЬ!JОВ",Тел. o Команда passwd запросит ноныА парОJ1Ь и потребует ПОRТОрИТЬ cro. Если введен короткий паролъ, состояший только ИЗ строчных букв, команда pasSl\'d попросит задать чтоtrnбуnъ nодлиннес. Система FreeBSD может принять тикой параль, если он введен три раза ПО11Ряд, но в большинстве дрyrих систем требуется придумать паро.'lЬ. состоящий из смеси строчных и прописных букв и имеюший длину около 8 симвОЛов. Если первая попытка не понравится комаlillе p8sswd. она, возможно, сообшит о том. какие праОИЛd lIейстnyют в КОН1<ретIЮЙ реализаuии UNIX. Правила выбора nаролв;' nрив.дены в nарйlрафе 2/.3. Иноrll8 полъзоваТeJ1ПМ требуется помошь при выборе параля. Мы рскомен.пуем заменить системный вариант команды passwd обновлен но"" версией, которая проверяет вводимые пароли на вероятность взлома. Т a!Gtx версий сущсстuует несколько. Мы пре.nлочитаем утилиту npasswd. ДОСТУПНУIO по слеlIУlOшему адресу: httр://www.Ulсxas.еdU/сс/uл iх/sоfiwаrе/лраsswd Проrpаммв passwd, имеющаяся в Red Hat. проверяет. не ВХQJIИТ ли пароль в систмнblЙ словарь. Это не столь надежная проверка. как тз. которую выполняет проrpaмма npaS5wd, но все же она пОЛезна. Никоrда не оставляйте бсз пароля новую учетную запись или З3ПН'Сh С .постynом к ШfТерпрtТ3тору комаl-Ш   Создание начальноro католоrа КажДЫЙ вновь создавасмый каталоr нзначально ПРИНадЛежит ПО:JЬ308а телю root. поэтому необходимо измеНИТЬ СТО влап-ельиа и rpуппу с помощыо команд chown и chgrp. Следуюwая rpуппа КОМВI-Ш СОЗlL8СТ началъны  каталоr для пользователя tyler. mkdir /home/Ilta.f'f'/tylBr сЬоwn tyler Ihome/Bta.f':f/tyler chqrp .t_f'f' /home/at.f'f'/tyler chznod 700 /home/st&f'f'/tyler Копировоние конфиryрационных фойлов Работу некоторых команд 11 УТИJlИТ можно настроить, поместив фа илы конфпryраuии 8 CBO наЧ8.ifЫ-IЫЙ каталоr. Имена таких файлов транИUIIОНIIО начинаются с точки. поэтому "oMatlдa 15 не включает их в листинrи катRJю....ОП. если только не указана аппия a. Некоторые наиболее часто встречаюшuе-ся файлы лсречислены в табл. 6.1. Если У вас еще нет набора универса.тrьных файлов конфиryрации, создайте "" 8 каталоre /usr/local/llb/skel с ПоIOIUЬЮ TeкcТOBOro реlIаl<Тора. Лучше ocero воспользоваться заrотовками, оставленными разработчиками СИС1СМЫ в к..талоre /etc/skel (/usr/share/skel 80 FreeBSD). если он есть. 108 Часть 1. OCHOB"I ОДМИНloo1стрирОA-Q...Иfl 
Таб.nицо 6.1. Типичные фои.nы конфиryроции  Утилита Имя Ф ойло ""Ь/IcllЬ .logjn .амс .I°lout .Ь .рroШе >1 .exrc ....... .emaCl.....Pro m.Ux .mailrc 110 .пеwис XnIb .Xdefaulu 118т .xlnitrc Типичное примвнение Установка типа tcр.tИН8J1В Установка перемснных среды Установка опиий bIff и шеза Установка псеuокимов команд YcтlНOaxa лером.иной среды РАТН Установка значс:ИИJI uшuk Установка строки при.rлaшения, формирование списка предыстории Вывод напоминаний Очистх.а экрана Aн8ll0r файлоа .lовJп и .csbre JLЛJI Воит. shell Установка опинА puaктopa у1 Ycra.нOBKa ОnUИЙ редактора ешаа ФункционалЬНИJI. прнвязка КJl.8.lIНШ редактора t:!mac.s ЗвдlUi.ИС персонan.ыtых почтовых Dct.8дон.ИМQВ Установка параме1рОВ лочтовоro I<lIнента ЗадаНие CmtClCa тслсконференuий Зuaнме параметров конфи.rypauии XII: шрифты, цвета И T..D.. Задание нач8JtЬКОЙ среды XII Убедитссь, '!то файлы конфиryрации содержат стандартные значения, приемлемые для непощотовленньrх пользователей. Не пытsйтесь, олнако, "защитить" поль-зователей от операuионной CJ1CтeMbl. Такие псевдонимы. как .а11.аз d1.r 15 l o.11o.s rm cm L 0.11.85 ер ер i считаются луриым Тоном. В ката.поrе Jetc MOryт содержаться системные конфиryрационные файлы, обрабатываемые раньше пользовательских. Например, 80 все>; наших тестовых системах интерлретатор ВоUПlе shcll читал файл /etc/pror.le, лрежпе чем начинать обрабатывать файл  /_pror.le. Последовательность КОМSI-Ш инстa..тmядии конфmyрационных файлов nля HOBoro ПО.:Jьзователя tyler будет выrЛR.nеть следуюшим образом: ер /uar/local/lib/.kel/. [azAZ]. /tyl8:r chmod 644 /tyl.r/. [..aAZ]' chown ty18r .../tyler/. [az.AZ] '* chQJ:P .ta:f:f .../tyler/. [azAZ]. Отметим, что нель-зя использовать команду chown ty18r .../ty18r/. '* иначе поль-зователь tyler станет владельце... не только своих собственных файлов, НО также РOllительскоrо ката.поra ".." (/hоп.е/S!JIП). 3;0 очень распространенная и опасная ошибка СИСТС:М'Ноrо администратора Назначение каталоrа для электронной почты Пользователи предпочитают получать электронную почту на К8КОЙТО одной машине. Это часто реализуется nyreM ЛnnИRJ1ения lаписи в файл r ЛОВО 6. Подключение новых пользовотелей 109 
rлобмънъrx псевдонимов /etc/mail/aliases или В пользовательскую базу данных системы sendmail. Информаuия об электронной почте приподится в rлаве 19, а способы орrанизаuии почтовых каталоrоВ рассматриваются начиная с пара'l'афа 19.3. Редактирование файла fetcfgroup Продолжая llобаалеиие HOBOro пользователя l)'ler. необходимо добавить ero реmстрauионное имя в список пользователей rpуппы С номером 100, поскольку именно эту rpyтmy мы назначили ему по умолчанию В файле /etc/passwd. Cтporo roворя, пользователь tyler бупет R rруппе номер 100 независимо от Toro, указан он 13 файле /etc/group или нет, потому ЧТО это членство уже предоставлено ему блаrодtlря записи файла passwd. Тем не менее. указанную информацию желательно впести В фал /etc/gronp. 'Чтобы можно было Bcer.na узнать, какие поль-зоватeJfИ к каким rpynnaM относятся-. Предположим. что нам нужно также ВЮJюч-ить пользователя tyler в rруппу wbeel. В некоторых системах только члены этой rpYnnbl MOryт пыполнять команду su. В этом случае следует внести такие изменения в файл /etc/group: wheel:": о: root,.ev1.,.qarth,scot-t, t-rent, tyler csstaff::lOO:lloyd,evi,tyler Установка дисковых квот Если В системе заданы дисковые квоты, их необходимо устанаВJlИШlТЬ .nля каждой новой учетной записи с помошъю команды edquota. Эту команду МОЖНО использовать Ш1я интерактивноro задания квот, но чаше вcero удобнее назначать новому пользователю такие же квоты, как я у сушествуюших пользователей. например: .f edquota. p nольsова7'ель  прототип новый  пользователь Такой метод ИсПОЛЪЗ0ВЗНИЯ команды edquota особенно полезен В сценариях adduser. Поскольку в Н8llЛf дни жесткие диски относительно дешевы. мы не ЯR11яемся сторонниками ДИСКОВЫХ КВОТ. ОЮf создают больше проблем, чем решают. и вызывают дополнительную roловную боль у администраторов. MHOro лет назад, коrда МЫ ИСПОЛЬЗОВали дисковые квоты. нам пришлось создать несколько учетных записей только .nля тoro, чтобы otrn служили прототипаm пользовательских КВОТ. Проверка HOBoro реrистрацнонноrо имени Чтобы проверить, правильно ЛИ сформирована новая учетная запись, сначала ВЫЙдИте из системы. а затем зареrистрируйтесь как НОВЫЙ пользо вателъ и выполните следуюшие команны: " pwd ,- проерка начальноrо каталоrа ,,/ " 18 la ,... npOBepl':a файлов I(онфиrураиии ПОЛЬЭОИdте.ля/rруппы .. / 111Я ядра в принципс не имеет знзчення. 'что содержится в ф<:lйлах /etc/passwd и /etc/group. Оно оперирует только идентификаторами пользователя J.I rpynпы. В файлах passwd и group хранится учетная иНФОРМ3LIИЯ. используемая высокоуровневым проrpaммным обеспечени ем. например проrpвммой login. Подробности процесса реrистраuии приведены R параr рафе 7.8. 110 Чость 1. ОСНОВЫ одминистрировония 
o Администратор должен сообшить новым пользователям об их репtстра ЦИОННЫХ именах и ИСХОДНЫХ паролях. Это также удобный момент для тoro, чтобы рассказать новичкам о ТОМ. какие традиuии существуют в данной орrанизации и какие есть дополнительные документы. реrламентируюшие работу пользователей. Если в орraнизаuии установлен порядок. соrласно которому пользователи должны подписать rrnсьменный контракт, ТО не забудьте выполнИТЬ эту процедуру ПО СОЗдания учеrnой записи. Это предотвратит возможные недоразумения и укрепит правовую базу санкuий I которые впоследствии anминистратору. ВОЗМОЖНО, придется применять. Подробнее о письменных контрактах С пОЛЬ30ВDтеля.ми рассказывается в параzрафе 27.1. Кроме Toro, не забудьте напомнИТЬ НОВЫМ пользователям о необходимо сти немедлениой заменЫ пвралей. 6.7. Удаление пользователей Коrда пользователь покидает орrанизauию. ero учетная запись и файлы должны быть удалены из системы. Эта проиедура охватывает удаление всеХ ссьuюк на реrистрauионное имя. которые были введены вручную или с ломошъю сценария addw;er. Иными словами. необходимо проделать следующее: сделать дисковую квоту удаляемоro пользователя (если таковые ИСПОЛIr- зуются) равной нулю; удалить пользователя из локальных баз данных и телефонных списков; . удалить пользовательские псеадОНИМbl из файла aliases , задать перена правлен.ие поступаюших ему сообшений; . стереть пользовательские задания из croпtabфаЙJ13 и из Qtrереди команды .at; уничтожить пользовательские процессы. которые еше выполняются; уничтож-итъ все ПРИН8lUJежащие пользователю временные файлы в каталоrах /var /tmp и /tmp; . удалить записи лользова'Л'Ля из файла passwd и group; . удалить начальный каталоf пользователя; удалить почтовый каталоr пользователя. Перед тем как уничтожить начальный каталоr пользоnзтеля, необходимо nepeMecrnть из нето Б llрyrие каталоrи все файлы, которые нужны остальным пользователям. Поскольку не 8cerдa можно с уверенностью сказать. какие файлы понаа.обятся. а какие  нет, лучше скопировать пользовательские начальный и почтопъlЙ каталоrи на матнитную ленту. После удаления пользователя убедитесь, что в системе не осталось файлов с ero идентификатором. Проще 8cero сделать ЭТО с помощью команды quot. Например. чтобы узнать. каким пользователям ПрИН8lUJежат фаЙЛЪ1 в каталоre fhome. задайте такую команду: . qoot /hOlll8 /dеv/rdsk/сОtЗdОs6 : 156254 millert 34520 hilbert 5512 'l1б1 без НОб9 r лова 6. Подключение новых попьзовотелей 111 
Эта команда не ТОЛЬКО сообшает ЧИСЛО п.ИСii:ОВЫХ блоков, ЗАНЯТЫ), файлами К8ждоrо пользователя, но тС\кже rоварит, что llБа идентификатора не обнаружены в файле letc/pssswd Чтобы YJHaTb точный путь к этим файлам, ВЫПОЛНИ7е следующую команду: :find x /home nou.er print Она будет выполняться rорз1.llО дольше, чем команда quot. Команда чоо. работает только с разделаМ1"l локальноrо JПfС1С8. Она не мож.ет анализировать фаА.YJовые системы, смонтированные через NFS. 6.8. Отключение реrистрационных имен Иноrда нужно временно отключить реrистраLIионное имя ПОЛЬЗ0ввтеЛR. До вторжения сетей в мир UNrx ностаточно было просто поставить звездочк) перед зашифрованным паролем, чтобы полъзоваtt.11Ь не cMor войти в систе'-f)' Тем не менее, он все равно имел возможность 8хола в систем)' по сети без указания пароля. поэтому данная метОllиха перестала быть полезной. Сеrо.дня мы заменяем командный интерпретатор пользовате:IЯ проrpа мой, которая ВЫдает сообшение. поясняюшее. почему данное реrнстраuион ное имя отключено, и сonержащее инструкuии по исправлению ситуаuии Такой псевдоинтерпретsтор не полжен быть указан R файле letc/shells. Мноrnе .аемоны, преllостаВЛJrЮшие нереrистраuнонныЙ доступ к системе (например, npd), проверяют, уломянут ли интерrтpетатор пользователя в файле lelc/shells; ес!ш он там не указан, вхон в систему будет звпрешен (именно это Ha и требуется). Прама, есть олна проблема. По умолчанию проrpaмма sепdmвll H доставляет почту тем пользователям, интерпретаторы которых не указаны 8 файле letc/shells. Чтобы изменить эту установку, добавьте в файл lelc/sl"lls ложный интерпретатор с именем ISENDМAII./A""/SHELL 6.9. Системные утилиты управления учетными записями В Solaris, Н р. UX н Red Hat имеетсЯ схожий набор \тилит, помоrаЮЩI.I" автоматизировать ПрОLItсс создания, удаления и \юдификаШfl1 rpупп J.t пользоввтельски'l( учетных записей. Во FreeBSD ИСПОfJьз)'r:тся дрyrОЙ набор утилит. Команда useradd добавляет записи о пользователях в фйл pass\!"d (и в файл shadow, если он есть). Она имеет Plнтерфейс командной строки и леп<о запускается вручную или из сцеFlария adduser. Команда usеnпоd изменяет записи фаllла pa..wd для существуюших пользователей Команда userdel удаляет полъзователя из системы, прИ необходимосПl уничтожая и ero начальный каталоr. Команды groupadd, groupnlOd и groupdel ВЫПОЛНЯЮТ аналОПfЧные действия по отношению к файлу jetcjgroup. ХОТЯ эТИ I<'OMaНlIbt Уllобны, в большинстве случаеь их недостаточно, чтобы реализовать все пра-вила ynраНlIС:НИЯ системой. Мы рекомендуем написать собстВt:'нные сuенарии adduser Jf П1шser. ДлJl этоrо хорошо nOдXQД1.fТ RЗЫК Perl. Вот как \южно нобавить в систе",,)' HOHoro nО:JьзоnaтеfJЯ hllber1 " u.8radd hilbert Эта команда создает 8 файле jetcjpasswd слеДУЮlI1)'1O зilпись: j-,ilbert: *: 1 05: 20: : /home/t"iilbfHt: /bin/sh 112 Чость. I ОСНОВ"'I ОДМt.1нистрирО80НИЯ 
Обрвтите внимание на то, Ч1'0 поле пареля содержит зве:щочку. Твким образом, доступ к учетной записи будет закрыт до тех пор, пока не будет иазнвчен реальный парQl\Ь, "" Команда useradd имеет ряд полезных apryмeHToB. В следующем примере мы указываем, Ч1'0 основной rpуппой пользователя bIlbert ямяется rруппв faculty; кроме Toro, он входит в rpynny famous. Помимо этоro, мы задаем АРУТОЙ начальнЫй каталоr и просим команду useradd со:щвть ero, если он еше не существует, * u..r_dd. c "D8Vid ВilЬ8rt П d /home/lD&th/bilbert 9 t_culty G famoU8 ID . /b1n/tc8b h1lbert в результате в файле /ete/paвswd появится такая записЬ: hilb_rt:.: 105: 30: David Hilbert: /horne/math/hilbert: /bln/tcsh  Кроме Toro, пользователь bIlbert будет добавлен в rpулпы faculty и 'атош в файле /etc/group; появится также каталоr /11ome/math/11llbert, заполненный нв основании содержимоro квталоra /etc/.kel. в 501ari. (и в Red На!, если в системе ИСПQl\ьзуется файл shadow) запись о ПQl\ЬЗОВ8теле bllbert будет ломешенв в фвйл /elc/.badow. Узнать текущие установки вы можете, выполния команду useradd -о. В HPUX и Red На! звдать нвчальные пвраметры можно в файле /etc/de- fau1t/useradd. Комвндв usermod модифицирует существующую учетную запись и при нимает те же опции, что и КOMBIIд8 useradd. Например. следуюшая KOMBIIд8 звдает конечный срок существования учеП!оЙ записи bilbert  4 июля 2002 r:: .. 11..rmod . ".:ru1.y .., 2002" bilbert Команда usenlel УНИЧ1'ожает учетную запись, отменяя таким образом нее изменения, сделанные komb,-ШОй useradd. Чтобы удалить пользователя hilbert, достаТОЧНО ввести . u.ardel h11bert Эта команда удалит все ссылки на учетную эались bllbert из файлов paвswd, .hBdow (если он есть) и group. По умолчанию начвльный каталоr пользователя не удаляется. (В своеЙ системе мы обычно не уничтожаем начальные каталоrи в течение несколькИХ недель, чтобы уменьшить число возможных восстаномений с резервных копий на мвrнитиой ленте.) Во FreeB5D имеются сuенарии Bdduser и rmuser, написанные нв Per1. Их можно либо использовать в неизменном ВИде, либо модифиuировать под снои нужды. Сuснарий rmuser отлично справляется с удалением полЬЭОRВ тельских файлов и проиессов (команда userdel даже не пытвется этоrо делать). В отличие от команд useradd и userdel, сuенврии adduser и rmu..r являются интерактивными проrpаммвми. fлобальные установки сuенария adduser хрвня-rcя в файле /elc/adduser.conf. По умолчвнию сuенврий addu"er копирует файлы конфиrypации из каталоrа /usr /share/"kel. в HP-UX это МОЖНО сде.'1ВТЪ. ТОЛЬКО если система СКDнфиrypирована в h.доверите...1ЬНОМ режиме" . r лава 6. Подключение НОВЫХ пользователей 113 
7 Последовательные устройство 9!/ Последовательные порты  это, без сомнения, самое удобное средство BBoдaBЫВOдa R UN[XCJ1CTeMax. Оня не СЛИШКОМ быстродействующие, но достатОЧ1Ю rибкие и прJ1Сyrствуют 8 любых машинах  от переанальных КОМТ1ьютеров до мэйнфреЙМОR. Последовательные порты можно использовать дnя СВЯЗИ С С8МЫМИ разными устройствами, R ТОМ числе пркнтерами. терминалами и дрyrими компьютерамИ. УстрОЙСТВО может подключаться J{ системе либо непосредст венно (с помоЩЬЮ кабеля), либо ПО телефонной ЛИНИЯ через модемы, обеспечивающие модyляuиюдемодулЯUИЮ последовательных сиrи8ЛОВ. В ЭТОЙ rлаве рассказывается о ТОМ, как подключать к системе последо ватеЛЬНЫС устройства и КQНфиrypировзть протраммное обеспечение с uелью максималъНОro использования возможностей этих устройств. В наших при мерах описано ПОдКЛЮчение терминалов, модемов и ПрИН1'еров; дрyrие последовательные устройства подключаются практически аналОПfЧНо. 7.1. Стандарты последовательной передачи данных Большинство последоватслъ.ных портов работает соrласно различным вариантам cтal-\!lapтa RS232 ЭтОТ стандарт определяет электрические харак- теристики и назначение каж,цоrо сиrнвльноrо провода. а также разводку контактов традиuионноro 25J{oHTaIcrHoro последоnaтельноrо разъемноro co единения, известноrо ках разъем OB25 (рис. A) Полный набор сиrнальнык проводов интерфейса RS232. чаще Bcero избыточен, так ка.к ОН предназначен .nnя распространения сиrиалов. мноrие из которых не используются в основных режимах передачи данных. Кроме тaro, разъемные соединения OB25 велики для установки в коммyrаuионнъrх панелях и портативных компьютерах. Поэтому сейчас широко применяются альтернативные модели разъемов (см. лара'1'аф 7.2). с техническоЙ ТОЧI01 зрения правмьнее называть ero стаНдартом EIA2J2E. Но есJПi вьт будете таК ro80рИТЬ, вряд ли вас КТОНI-,будь поЙмет. 114 Чость I Основы администрирования 
Разъем .. Номв  BЫД08  13 --.. . 0000000000000 000000000000  14  25 Рис. А. Разъемное coeAao1HeHi'le DВ.25 В трад:ицяонном иmерфейсе RS232 используется экранированная витая пара (обычно это мноrОЖИJIЬНЫЙ провод сортамента 22). Сначала в RS232 примен.ялись СИПIалы постоянноro тока напряжением :!::: 12 В. но сейчас больше распространено напряжение :!:::5 В. Иноrпа используют напряжение :!:З В. Все ЭТИ значения соответствуют спецификации RS232. поэтому допускается соединение устройстя с разными уровнями иапряжениЙ. иtrrepфeйс RS232 не является электрически сбалансированной системоЙ: в нем имеется отдельный провод .для передачи данных в каждом напрзвлении. Следовательно, применять витую пару нет необходимости. Преимушеством экранированной витой пары является само экранирование. позuоляюшее уменьшить риск 8неurнпx воздействий. Но Korдa два информauионных провода (тD и RD) скручиваются в одну пару, может произойти снижение надежнос'Пf и диапазона распространяемых ситалов, так что лучше зтоrо не делать. Нет общепринятоrо соrлашеиия о ТОМ, какие сиrналы стандарта RS2)2 должны совместно распространяться по витой паре. Некоторые источники рекомендуют спаривать проооя заземлениЯ с ПРО80дами ТО и RD. но, вопервых, это требует выделения дополнmе.льноro провода, а lЮвторых. ПОЯШlяется несколько путеи заземления. Насколько нам ИЗБеСПЮ, придержи ваться подобноro соrлашенИЯ необязаТeJ1ЬНО. Разъемное соединение OB25 состоит из вилки (разъем с торчашими urrырьками; обозначается как DB25P) и розетки, или rnезда ("материнскиЙ" разъем с соответствуюшими отверстиями; обозначается как DB25S). Возле urrыpЬKoB и отверстий нанесены ....l'ошеч-Ные числа от 1 ДО 25  ЭТО номера контактов. Лучше вcero они бу.nyт вилtlы' еслИ поднести разъем к све1)' и посмотреть на Hero под yrлом. Иноrnа маркируются только выпады 1. 13, 14 и 25. Вилка DB25 изображена Н8 рис. А. Во неех последовательны).; разъемных соединениях номера контактов на розетке зеркально отражают номера на вилке, чтобы при стыковке разъемов контакты с одинаковыми номерами совпадали. Обратите внимание: у разъема. изображенноI'O на рисунке, установлено вcero семь выводов. Именно так чаще всето и бывает. Снrналы интерфейса RS232 и соответствующие им контакты разъемноrо есенинении DB25 перечислены в табл. 7.1. На практике используются только сиrналы 1 8 и 20, остальнЫе можно проиrнорировать. r лова 7. Поcnедовотельные устро.:1ство 115 
Таблица 7.1. Сиrналы интерфейса RS2З2 и соответствующие ИМ кантакты DозъеМl-lоrо соеДИНВl-ltI!Я DPr25 J<\L>tr.Q ""  rl-4аlТ Фу нкц-" 1 FG 3ашитнос 3Iзсмлсн.ие . 2 TD Лередаваемые .пан.ные 3 RD Лриии.масмыс ЛIмные 4 KТS [отовность К передаче 5 CТS [OТOBHOCТ1t К приему 6 DSR fотовиость юа.н.ных 7 SG Зазс:м.nсние сиrнВЛ8 8 DCD Обнвру.жснне несуwей 9 ПonOЖJ.tтсльнос КОН1рольнос напряжсние 10 Отриuвтe.JlhНОС КОН1PQльнос нanpJDКсние II Не Н83начен 12 SDCD Вторичный сиrнaл DCD 13 SCТS Вторичный сиrиал CТS 14 SТD Вторичный СИI1iал TD 15 те СИНХРОКИ3&JJ.НR передачи 16 SRD Вторнчный си.rн.a.n RD 17 КС Синхрокиэauия: приема 18 Не назначен 19 SRTS Вторичный сиrнал RTS 20 DТR [отомность тери.ннВJUI. 21 SQ Детектор качества сиrнала 22 Rl Икаикатор вызова 2J DRS селектор скороС1'И персД8ЧМ ЛIИНЫХ 24 SCТE ВиеwНJUI си.нхрони3lUИЯ передачи 25 BUSY з....то Для последователЬНblJ< устройств сушествуют Д8е конфиrypаuии кабельной системы: DTE (Dara Terminвl Equipmcnt  терминальиое оборудование) и DCE (Dвta Communications Equipmeot  аппаратура передачи дакных). эти коифитураuии определяют, какие сиrнвлы устройство будет ожидать на тех или ИНЫХ KOНiaктax разъемноrо соединеиия. Каждое устройство конфиrypи руется лиБо как DTE, либо как DCE. хотя искоторые устройства поддерЖl< вают оба варианта (но не одновременно). Компьютеры. терминалы 1-1 принтеры чаше вcero относятся к типу ОТЕ, тоrД8 как МОдемы яв.'11!'ются DСЕустройствамт<. Последовательные устройства DTE и DCE "OI)"r ВЗ8И модействовать дрyr с друтом В ПРОИ3DОЛЬНЬrx сочаниях. но в разных случаях требуются разные каБели. Смысла в OДHOBpMeHHOM сушествовании двух коифнтураuий нет. по скольку ДЛЯ веста оборудования может использоваться одна и та же разводка контактов. Просто ЭТО одно из мноrиx бессмысленных исторических наследий стандарта RS-232. Ниже пере'lИслеиы особенности обеих конфиrypаuи1\: . Разводка контактОВ в любом разъемном соединении RS2)2 всеrда одинакова незаВисимо от Toro. вилка это или розетка (штыькнH всеrла 116 Чоcr.. I Основы админиcrрироВОНИЯ 
совпадают с СОOТ1lетствующими отверсrnями) н rде находится разъем: ив кабеле. DТE или DСЕустройстве. . Спеuификauия RS2З2 построена на модели сквозноro соединения DTE и DCEycтpollctВ. (Под "сквозным" понимается соединение, при котором линия TD DТЕустройства поnключается К линии TD DCEycтpol\cтвa и т.д. Все одноименные контакты соединяются друт с дрyroм.) . Именование сиrnaлов произведено примеmrreльно К DТЕустройству. Налример, название сиrналв TD (Lrвлsmillеd da!a  передаваемые дaH ные) в действительности означает '"ванные, передаваемые от OTEYCT РОl\ства К DCEycтpol\cYВY". Несмотря на название, контакт TD служит для лриема данных на DCEycтpol\cтвe. Аналоrичным образом, контахт RD является входным на DTEycтpol\cтвe и выходным на DСЕустройстве. Коrда кабелем соединяют два DTEYCTpol\cтвa (компьютер и терминал либо компьютер и компьютер), их нужно "обмануть", заставив думать, что дрyraя сторона ЯВJIяется DCEycтpolicTBOM. Поскольку оба устройства будут предполarать передачу дaHHых ло лннии TD и прием  по ЛИНИ Н RD, необходимо соединить провода кpeCTН8кpecт. связав выходной контакт OJIИoro устройства с ВХОДНЫМ контактом друтоro и нвоборот. Подобноrо рода "перекрещивание" при соединеюrn двух DТЕустройств требуется для трех rpупп сиrnaлов. вопервых' это сиrналы TD и RD, о чем rоворИJJОСЬ выше. Boвтopыx, Э1'О сиrнaлы RTS и CТS. Втретьих, KOНТВJ(Т DTR должен бbrrb связан с КОlПактами DCD и DSR на противоположном конис. . Кабель. соединяюший два DTEycтpol\cTвa, называется нульмодI!.МНЫМ. Подключать к нему модемы нельЗЯ. Кабель для модемов называется MoдeMHы,, прямым или обычным. Изначально предnолаraлось, что DТЕустройства оснашены вилками, а DСЕустройсТВ8  розетками. Со временем разработчики аппаратных средств ПОНЯЛИ, что ВИЛКИ являются более хрупкими и чаше подвержены поломкам. Сеrодня в дороroстояшей вычислителъной техни:ке. как правило. ставЯ1' розетки. а большинство кабелей с обоих кониов имеет вилки. На рис. Б изображена разводка контактов и схемы соединений нулъмо демн:ым и прямым кабелями. Показаны только "полезные" сиrналы. iаювнов обозначение Обычный НулЬ'-модвмный Защитное заземленtII8 FG Передаваемые данные TD ПрИИl1М8емые даНI-IЫ8 RD rOTrJBHOCТb к передаче RTS rOTOBHOCТb к приему СТS rOTOBHOC.Tb даниых DSR Зазвмпение СИПianв SG ОбнаружеtiИ8 несущеt1 DCD . . 1..0 Т е минала DТR 1  1 2  2 3  3 4  4 5  5 6  6 7  7 В  В 20  20 1  1 2 >< 2 3 3 4 >< 4 5 5 6  6 7 7 В В 20 20 Рис. Б. Розводка контактов и схемы саединена.1Я кобелей д.пя разъемов DB 25 r"OBO 7. ПаследовотеЛhные устройство 117 
7.2. Альтернативные разъемные соединения Ниже описываются наиболее распространенные альтернативные разъем ные соединения: DIN8. OB9 и RJ45. Несмотря на конструктивные различия, эти соединения обеспечивают доступ к тем же эле...'Трическим сиrnалам, что и разъем OB25. Устройства, в KOTOpbIJ( используются разные разъемы, вcerдa совместимы, ec.тrn правильно выбран кабельный переходник. Минирозъем DIN8 Разъемные соединения DIN8 применяются в ком"ьютерах МаСIП(оsh. в некоторых портативных компьютерах и на рабочих станuиях Эти почти круrлые и ИСКЛЮЧJПeJlЪНQ компактные разъемы имеют вьтоды ШIЯ семи иаиболее часто используемых сиrналов стандарта RS232 (рнс. В). Разъем Номера ВЫВОДОВ "'-... '" '" Рис. В. 8ил.о OIN8 у местных поставщиков компьютеров всеrда можно приобрести нераз борные кабельные переходнmcи DB25/DIN8. Не пьrr8ЙТесь сделатъ юс сами, потому что разъем DIN8 наСТОЛЬКО мал, что ero невозможио собрarъ ВРY'fJiую. Разводка контактов разъема DIN8 дана в табл. 7.2. Таблица 7.2. Разводка контактов дnя прямаrо кобельноrо переходо DIN8/DPr2S OIN--8 O25 СJ1rнал ФуНIЩИЯ 3 2 то Передаваемые даН.НЫС 5 3 RD Принимаемые данные 6 4 RТS fотовиость К передаче 2 crs [ОТО8НОСТЬ К npиему 4,8 7 SG 3азсмлсине сиrнала 7 8 ОСО 06ив.ружеиие иесуwеА I 20 OТR rOТOBHOCТh терминала Розъем DB9 Этот девятиконтаJCТНblЙ разъем (внешне напоминаю1.IIИЙ уменьшенную копию OB25) обычно применяется в персональных компьютерах. Он обеспеЧИ1lает передачу восььт наиболее часто используемых сиrнапов cтaH дарта RS232 (рис. П. 118 Часть 1. Основы администрt.1РОВОНИЯ 
Разъем Ном.е а выводов ,,' t,.' Р.с. r. В.".о 08-9 у местных IlOставщикоfl, персональных компьютеров обычtЮ МОЖIЮ приобрести фабричные кабеЛЫlые пере'ЮДllИКif OB9/OB25. Разводка }"OH тактов представлена В табл. 7.3. Таблица 7.3. Розводка контактов д.пя прямоro кобельноrо '-'ерехода ОВ-9/0В-25 09 ОВ-25 Сиrнол Фу нкция 3 2 ТО Передаваемые данные 2 3 КО Принимаемwс данные 7 4 RTS r OTOBtlOCТb к передаче 8 5 CTS rOTOBHOCТb t: приему 6 6 OSR roroBHOCТb данных 5 7 SG Зазсмление снrнала I 8 ОСО Обнаружеtше неt:ущей 4 20 ОТК 1 ОТОВНOl"ТЬ т р МИIIВJI.8 Разъем RJ--45 RJ45  'Это, в СУЩНОСПf. восы.шпроводнои МОдy:rlъныЙ телефонный разъем. Он напоминает станлартное соедннение RJ 11. ИСПОЛЬJуемое в телефонных аппаратах в США, но У последнеrо только 4 ипырька. а у разъема Ю45  8 {рис. Е). Разъемные соединеНIIЯ RJ45 оБы{ноo применяются R Elhemet, но MOryт работать 11 в ПОС;Jсдователъны)( JШШIЯХ. Номе ро выводав ..... . Разъем  ::::.-  ---. Вид сверху ...  B' 11111111 Р.с Д. 8.".0 RJ-45 rиеlда RJ45 практически не встречаются u КОМllьютера1( и обычном пос..ттедовате.льном обоРУllонаНJlJ1 Их часто ПрifмеНЯЮ1 D Кdчестне 11poMc>t<..yrOLJt1LI\: r лова 7. Последовательные устройство 119 
o соединителей при разводке последовательных ЛИНИЙ через коммyrаuионные пвиели. И Horдa их МОЖНО встретить в тех устройствах, rпe на небольшой плошали размешено MHOro портов (напримеРI в серверах рминапов). Разъемы Ю45, как правило, используются не с витой парой, а с плоским телефонным кабелем. но оба варианта допустимы 8 последовательных соединениях. Разъемные соединения RJ45 компактны и пешепы. Они закреrmяются На кабеле с помошью спеuиальноrо обжимноrо инструмента. Вся проиедура крепления длится менее минуrы. Сушествует uелый ряд станд.артов, определяюших соответствие контактов разъема Ю45 контактам разъема DB-25. Самый лучший из них  с"стема Дэйва Йоста (Dave YOSI), в которой каждое устройство снабжено rnездом RJ --45 и используются стаJ.Ulвртизированные кабели, ЛОЗ80ЛЯЮlШfе соединять как DCE, так " DТЕустройства. Стандарт Йоста для раэъемноrо соединения R45 Эту СlJецификаци/О разработал в и/Оне /987 е. Дэuв Йост (Dave@YIJIJ/.com). Для НQшей KHUZU он исnравuл и дОIJОЛНl1.Л ее. Вот схема, которая позволяет успешно справ.ляться с некоторыми трудностям" С'ЛIНдарта RS232: . Все кабельные разъемы  одноrо типа (BНJlJGI Ю45). DTE и DСЕустройства ничем не отличаются друт от друта. . Понапобится кабель толька oпHoro вила. Можно быстро rотоlППЬ кабели, используя вcero один обжимноЙ инструмент. Каждый последовательный порт на всех апп.ар3ТI-IbrХ устройствах получаст свой собственный, соотяетствуюшим обра.зом разведенный переходник OB 25/Ю45 или DB9/RJ45. Этот переходни. "навечно" лривинчивастся " порту. Теперь кажДЫЙ порт представ.ляет собой один и тот же соединительный разъем  розетку RJ4S, независимо от Tor0 1 каким бьU1 исходный разъем: DB25 или DB9, DТE или DСЕтипа, вилкой ил" розеткой. Установив переходнИЮf на порты RS2)2, можно подключать к последо вателъному порту различные устройства без использования нульмодемов ИЛИ нультерминал08, без изменения разводки контактов I-Ia кабельных разъемах и без и'ЗrОТОRЛения спеuиальных кабелей. С помощью кабеля OlIНoro пида вы сможете подключать модем к компьютеру, MOДM к теР"fИНалу, терминм к компьютеру. терминал к терминалу, компьютер" компьютеру и т.д. ИсrlOлъзуется восьмипроводной плоский кабель в оболочке. Выводы разъемов на обоих кониах прижаты к проводпикам кабеля спеuиальным обжимJiЬJМ устройством, поэтому паять и.х не нужно. Имеется тр" сиrnалъНЬL' лровода (один информационный и два ynрав ЛЯЮЩИ:Х) дЛЯ ка.жд.оrо направления плюс пара проводов заземления. Кабели разведены не обычным образом (т.е. Korдa каЖдЫй вывод разъема соединяется с соответствующим выводом на прутом конце кабеля), а с "перекрyrкой". "зеркальным отображением", '.обратной стыковкой"  иазывайте как утодно. Блаroдаря такому способу разводки кабель соединяет "передающий" штырек с соответствуюшим "приемным" штырьком на дpyroM коние кабеля. По.noбнпя схема работает потому, что расположение сиrнальных проволов в плоском кабеле СIOAметрячно, т.е. для JCаждоro провода, по которому передаются 120 ЧОСТЬ I Основы ОДМIo1НIo1СТрИРОВQНИfl 
данные, есть соответствуюший провод. по которому данные принимаются. Этот провод расположен зерlCВIТЪНО к первому относительно оси кабеля.. в фабрllчных "абелях RJ4S обычно используется сквозная разеодка, поэтому необходимо снять разъем С оmюrо кониа кабеля и вмонтировать HOBЬJ1::I: С обратной разводкой. Увеличивать длину кабеля можно С помоШЬЮ соenиmrrелей "розеткарозе11(а'" но помните: два перекрученньrх кабеля, соединенных таким способом, образуют кабель СО сквозным соединением. ПереходнИl<И DB2S/RJ4S производят МНОП1е фир."". Их внутренняя uвеТОВ8я кодировка не совпадает с uвeтзмм каблей. Переходники. соедини тели и провода сейчас можно свободно купить в маraзинах электроники, но, как это им печально, они ничем не MOryт помочь при работе с интерфейсом RS 232. Описанная схема была рассчитана на применение JU10CKOrO экраниро В8ННОro кабеля, в котором все провода расположены рядом. В npотивопо ложность этому в витой паре имеется четыре пары проводов, и в каждой паре провода скручены между собой по всей длине кабеля. Если используется витая пара (например, кабель катеroрии 5). разводка проводов будет не такоя, как в обычных соединениях RJ4S (IOBaseT, телефонная линия н т.д.). Нужно сделать так, чтобы провола 3:4 и 5:6 образовывали пары. Дрyrое сочетание может привести к возникновению пере крестных помех. РазВОJIКЗ остальных проводов не И'1еет значения. но оБыч1io спаривают провода 1:2 и 7:8. o ДОlJолнительная иНФОРМDция о кабеле KDmezopuu 5 приводится в параzрафе /5.2. Внутри переХОДIOlка находится rнездо RJ4S. из КОТОРOJ'О ВЫХОДЯТ восемь проводов. К этим про волам с помошью обжимноrо инструмента прикреплены штырьки (или. в зависИ"мости от сиТ).аuии, контактныс rнезда). Эти штырьки просто 8став.ляются в отверстия разъема RS232. а затем кожух переходника ззшелкивается. Таблицо 7.4. Разводка проводов переходников Йосто R.HS/DB2S и RJ.4S/D89 КонтоК1' ОСЕ Конто<т DТE  "'ал DI'r2.S OB9 Сн,нDЛ 4 RTS S 8 Кобел. 5 1 Коричневый (к серому) 1 [алубой (к оранж.СИОЫУ) 3 Желтый (К чс:рному) 4 Jеяен.ыJ;t (К красному) S крвскый (1(. зе.леному) 6 Чери....й (К желтому) 7 OpaH)kc8.blA (К rолуfюму) 8 Серый (к кор.иЧНС8UЧV) Пе р вХОА [олубой crs Оранжевый 10 4 DTR ОСО Чс:рны.й ТО RD Красный GNO GNO Зсленый GNO GNO ЖeJlТblЙ RD ТО Коричневый ОСО 20 4 OTR Белый crs RTS Дзив НС rоворит ои этом яина, НО нужно ПОI-tИмать, что физической "перекpyrки" кабелей быть Не 1.I0.'1ЖНQ. ПОСКО.'1ьку paтьe на ПРОl'ивоположНblX KOHUax налраRilеНbl в разные стороны, зффект llОСТИlllется автоматичесkИ. 121 r лаво 7 ПОО1-6ДОВQтеЛI:Iные устройство 
Имеется, о.nнзко. такая проблема: оба ПРО80да заземления должны быть зааедены в онно rнездо DB15 нли DB9 (контакты 7 и 5 соответственно). эти провода можно спаять либо обжать с помощью спепиалъных приспо соблений. Некоторые DТЕустройства требуют, чтобы лини. DSR была активна. преЖде чем они CMOIyr ПОСbL'Iать данные. Си-rнaJ1 DSR обычно выдается DСЕустройством. но можно совершить "подлоr", сведя вместе контакты 20 А 6 (или 4 и 6 в разъеме DB9). В этом случае DТЕустройство будет получать сиrнал DSR от caMoro себя при выдаче сиrнала DTR_ В некоторых DСЕЛРАнтерах контакт 7 переходника RJ45 (коричневый провод) должен быть подключен к Л>IН'Ш DSR (контакт 6 в разъем"" DB15 и OB9). Прочтите документаuию к принтеру. чтобы узнать, может Шl он вьщавать Сl<rналы квитирования по линии DSR. а не DСD. Спасибо 38 эту Идею ребятам из Беркли_ У них несколько иная разводка (ВИдИМО, по историческим причинам). но сама идея пришла именно ОnyДЗ. Если бы я мот узнать. кто конкретно является автором данной схемы, я поблаroп.арил бы здесь этоrо человеки персон8ЛЪНО. 0' Дэuв Йоспr, Ло