ya drugih zadachi, imeetsya net takogo specializirovannogo obsluzhivaniya. Krome togo, esli V maloj lokal'noj vychislitel'noj set'yu s no Internet activity, ustanavlivaya DNS mozhet pokazat'sya utoyayim zatrudnenie dlya mnogih administratorov. |to - to, pochemu Sun razrabatyvalo NIS, Setevuyu Informacionnuyu Sistemu. NIS obespechivaet obobshchennye sredstva dostupa k baze dannyh, kotorye mogut ispol'zovat'sya dlya dizinformacii dannyh tipa etogo, soderzhali v passwd i gruppah fajlah vseh mnozhestvah na vashej seti. |to zastavit set' poyavit'sya tol'ko kak edinstvennaya sistema, s temi zhe samymi account na vseh mnozhestvah. V podobnom rezhime, Vy mozhet ispol'zovat' NIS, chtoby raspredelit' hostname informacionnuyu formu /etc/hos seti. NIS osnovan na RPC, i vklyuchaet server, client-side biblioteku, i neskol'ko administrativnyh instrumental'nyh sredstv. Pervonachal'no, NIS nazyvalsya ZHeltye Stranicy, ili YP, kotoryj vse eshche shiroko ispol'zuetsya, chtoby neoficial'no obratit'sya k etoj usluge. S drugoj storony, ZHeltye Stranicy - marka izgotovitelya Britanskoj Telesvyazi, kotoraya trebuet ot Sun ubrat' to nazvanie. Poskol'ku veshchi idut, nekotoryj sterzhen' imen s lyud'mi, i tak YP zhivet na prefikse k imenam bol'sh komand tipa ypserv, ypbind, i t.d. Segodnya, NIS dostupny dlya virtual'no vsego Un*ces i tam dazhe svobodno realizuetsya. Kazhdyj - iz BSD raz容dineniya Set' -2 vypusk, i byl poluchen iz obshchej pozhertvovannoj realizacii snoski oblasti Sun. Bibliotechnaya klientskaya cifra iz etogo raz容dineniya byla v GNU Libc v techenie dlitel'nogo vremeni, v to vremya kak administrativnye programmy tol'ko nedavno prenesennye k Linux Swen Thmmler. (1) NIS server - otsutstvuetiz realizacii snoski. Tobias Reber napisal drugoj NIS paket, e sredstva i server; eto nazyvaetsya yps. (2) V nastoyashchee vremya(postoyanno), polnaya perezapis' cifry NIS, nazyvaemoj NYS, sdelannaya Peter Eriksson, (3), kotoryj podderzhivaet oba, i plain NIS i Sun's much peresmotrennym NIS. 1. swen@uni-paderborn.de. NIS klientura dostupnay kak yp- linux.tar.gz iz sunsite.unc.edu v SISTEMA / SETX. 2. Tekushchaya verchiya *ot etoj zapisi) - yps-0.21 i mozhet byt' poluchena iz ftp.lysator.liu.se v - 177 - /pub/NYS kataloge. 3. pen@lysator.liu.se. +. NYS ne tol'ko obespechivaet mnozhestvo NIS instrumental'nyh sredstv i servera, no i takzhe pribavlyaet novoe mnozhestvo bibliotechnyh funkcij, kotorye budut naibolee vozmozhnymi dlya togo, chtoby popast' v standart libc v konechnom schete. |to vklyuchaet novuyu konfiguracionnuyu shemu porcii hostname resheniya, kotoroe zamenyaet tekushchuyu shemu ispol'zovannuyu host.conf. Osobennosti etih funkcij budut obsuzhdeny nizhe. |ta glava sosredotochitsya na NYS skoree chem na dvuh drugih paketah, k kotoromu ya budu otnosit' kak " tradicionnuyu " NIS cifru. Esli Vy hotite zapustit' etih paketov, to komand, opisannyh v etoj glave mozhet byt' ne dostatochno. CHtoby poluchat' dopolnitel'n uyu informaciyu, pozhalujsta najdite standartnuyu knigu po NIS, tipa NFS Hal Stern's i NIS (sm. [GETST "strogij - nfs"]). V nastoyashchee vremya, NYS - vse eshche razvivaetsya, i sledovatel'no standartnye Linux utility tipa setevyh programm ili vhoda v sistemu programm, eshche ne znaet NYS shemu konfiguracii. Poka NYS soedinyaetsya v mainstream libc Vy dolzhny peretranslirovat' vse eti binaries, esli Vy hotite zastavit' ih ispol'zovat' NYS. V lyubom iz etih prilozhenij formirovaniya fajla, tochno opredelite -lnsl kak poslednyuyu opciya libc k komponovshchiku. |to svyazyvaetsya na relevantnyh funkciyah iz libnsl, NYS standarnoj biblioteky dlya C. 11.1 Znakomstvo s NIS NIS hranit informaciyu baz dannyh, nahodyashchihsya v tak nazyvaemyh otobrazheniyah, soderzhashchih keyvalue pairs. Otobrazheniya sohraneny na central'nom hoste, vypolnyayushchem NIS server, iz kotorogo klientura mozhet otyskivat' informaciyu cherez razlichnye RPC vyzovy. Sovershenno chasto, otobrazheniya sohraneny v fajlah DBM. (4) Otpbrazheniya sami po sebe obychno generiruyutsya iz tekstovyh fajlov tipa /etc/hosts ili /etc/passwd. Dlya nekotoryh fajlov, otdel'nye - 178 - otobrazheniya - sozdany, odin dlya kazhdogo tipa klavishi. Naprimer, Vy mozhete iskat' host fajl dlya imeni hosta takzhe kak dlya adresa IP. Sootvetstvenno, dva NIS otobrazheniya polucheny iz fajla, vyzyvaemyj hosts.byname i hosts.byaddr, sootvetstvenno. Tablica 11.1 spiskov obshchih otobrazhenij i fajlov iz kootoryh oni sgenerirovanny. 4. DBM - prostaya biblioteka upravleniya bazoj dannyh kotoraya ispol'zuet metod heshirovaniya, chtoby uskorit' operaciyu issledovaniya. Imeetsya svobodnaya DBM realizaciya iz GNU proektiruemaya vyzyvaemoj Gdbm, kotoryj yavlyaetsya chast'yu bol'shinstva Linux rasprostranen iya. ----------------------------------------------------------- +-----------------+---------------------------------------+ |Master File | Map(s) | +-----------------+---------------------------------------+ +-----------------+---------------------------------------+ |/etc/hosts | hosts.byname hosts.byaddr | |/etc/networks | networks.byname networks.byaddr | |/etc/passwd | passwd.byname passwd.byuid | |/etc/group | group.byname group.bygid | |/etc/services | services.byname services.bynumber | |/etc/rpc | rpc.byname rpc.bynumber | |/etc/protocols | protocols.byname protocols.bynumber | |/usr/lib/aliases | mail.aliases | +-----------------+---------------------------------------+ +-----------------+---------------------------------------+ Tablica 1. Nekotoryj standart NIS otobrazheniya i sootvetstvuyushchie chajly. Imeyutsya drugie fajly i otobrazheniya, kotorye Vy mozhete najti v lyubom NIS pakete ili drugom. Oni mogut soderzhat' informaciyu dlya prilozhenij ne obsuzhdaemyh v etoj knige, tipa bootparams otobrazheniya, kotoroe mozhet ispol'zovat'sya nekotorymi BOOTP serverami, ili podobno kotoromu v nastoyashchee vremya ne imeyut lyubuyu funkciyu v Linux (Ethers.byname i ethers.byaddr otobrazheniya). - 179 - Dlya nekotoryh otobrazhenij, lyudi obychno ispol'zuyut prozvishcha, kotorye yavlyayutsya korotkimi sledovatel'no proshche. Poluchat' polnyj spisok prozvishch ponimaemyj vashimi NIS instrumental'nymi sredstvami, zapustite sleduyushchuyu komandu: $ ypcat -x NIS map nickname translation table: "passwd" -> "passwd.byname" "group" -> "group.byname" "networks" -> "networks.byaddr" "hosts" -> "hosts.byname" "protocols" -> "protocols.bynumber" "services" -> "services.byname" "aliases" -> "mail.aliases" "ethers" -> "ethers.byname" "rpc" -> "rpc.bynumber" "netmasks" -> "netmasks.byaddr" "publickey" -> "publickey.byname" "netid" -> "netid.byname" "passwd.adjunct" -> "passwd.adjunct.byname" "group.adjunct" -> "group.adjunct.byname" "timezone" -> "timezone.byname" NIS server tradicionno nazyvaetsya ypserv. Dlya srednej seti edinstvennogo servera obychno hvataet; bol'shie seti mogut vybirat' neskol'ko serverov na razlichnyh mashinah i razlichnyh segmentah seti, chtoby umen'shit' zagruzku na mashinah servera i programmah marshrutizacii. Oni sinhronizirovany, delaya odin iz nih glavnym serverom, k drugie podchinennymi serverami. Otobrazheniya budut sozdany tol'ko na master server's host. Ottuda, oni raspredeleny vsem slaves/ Vy otmetili, chto my govorili otnositel'no " seti " ochen' neopredelenno vse vremya; konechno imeetsya otlichitel'noe ponyatie v NIS, kotoroe otnositsya k takoj seti, i kotoraya yavlyaetsya sistemoj vseh hostov ta chast' ih dannyh konfiguracii sistemy sdelanny cherez NIS: NIS - 180 - oblast'. K sozhaleniyu, NIS oblasti ne imeyut absolyutno nichego obshchego s oblastyami, s kotorymi my stolknulis' v DNS. Izbegaya lyuboj neodnoznachnosti cherez etu glavu, ya budu vsegda tochno opredelyat' kotoryj tip oblasti NIS oblasti imeyut sovershenno administrativnuyu funkciyu tol'ko. Oni obychno nevidimy dlya pol'zovatelej, krome razdeleniya parolej mezhdu vsemi mashinami v oblasti. Sledovatel'no, nazvanie, dannoe NIS oblasti relevantno tol'ko administratoram. Obychno, lyuboe nazvanie budet kak dlinnyj poskol'ku eto otlichno ot lyubogo drugogo NIS nazvaniya oblasti na vashej lokal'noj seti. aprimer, administrator v Virtual Brewery mozhet sozdajt' dve NIS oblasti, odnu dlya Brewery neposredstvenno, i o kotoryu ona nazyvaet brewery i winery, sootvetstvenno. Drugaya sovershenno obshchaya shema dlya togo, chtoby prosto ispol'zovat' DNS nazvanie oblasti dlya NIS. CHtoby ustanovit' i pokazat' NIS nazvanie oblasti vashego mnozhestva, domainname. Kogda ona vyzyvaetsya bez lyubogo argumenta, eto pechataet tekushchee NIS nazvanie oblasti; k mnozhestvu nazvaniya oblasti, Vy dolzhny stat' super pol'zovatelemi vvesti: # domainname brewery NIS oblasti opredelyayut, kakoj NIS server-prilozhenie sdelaet zapros. Naprimer, programma vhoda v sistemu na mnozhestve v Winery dolzhna, sdelat' zapros NIS servera Winery (ili odin iz nih, esli oni tam byli otdeleny) dlya informacii parolya pol'zovatelya; v to vremya kak prilozhenie na Brewery host dolzhno prikleitsya k serveru Brewery'. Odna tajna, kotoraya pstaztsya vse eshche ne reshennoj, a imenno, kak klient uznaet s kakim serverom on soedinen. Samoe prostoe priblizhenie bylo by imet' fajl konfiguracii, kotoryj nazyvaet host, chtoby najti server. Odnako, eto priblizhenie bylo by dovol'no negibko, potomu chto eto ne pozvolyaet klienture ispol'zovat' razlichnye servery (iz toj zhe samoj oblasti, konechno), v zavisimosti ot ih dostupnosti. Sledovatel'no, tradicionnyj NIS implementations polagayutsya na special'nyj d chtoby obnaruzhit' podhodyashchij NIS server v ih NIS oblasti. Pered sposobnost'yu vypolnit' lyuboj NIS - 181 - Zapros, lyuboe prilozhenie, snachala vyyasnyati ot ypbind kotoryj server ispol'zuetsya. Ypbind issleduet servery, peredavaya k lokal'noj IP seti; snachalo pervyj otvet prinyat, chtoby byt' potencial'no samym bystrym i budet ispol'zovat'sya vo vseh posledovatel'nyh zaprosah NIS. Posle togo, kak nekotoryj interval istek, ili esli server stanovitsya nedostupnym, ypbind, issleduet aktivnye servery snova. Teper', spornaya tochka otnositel'no dinamicheskogo svyazyvaniya - to, chto Vy redko nuzhdajtes' v etom, i chto eto vvodit zadachu zashchity: ypbind slepo verit, kto by ni otvechael, kotoryj mog by byt' NIS serverom takzhe kak i "zloumyshlennik". Samo soboj razumeetsya eto stanovitsya zatrudneniem - esli Vy upravlyaete vashimi bazami dannyh parolej nad NIS. Dlya prinyatiya mer protiv etogo, NYS ne ispol'zuet ypbind po umolchaniyu, no podbiraet server dlya imeni hostaiz fajla konfiguracii. 11.2 NIS protiv NIS + NIS i NIS + prinimayut uchastie nemnogim bol'she chem ih nazvanie i obshchaya cel'. NIS + struktuirovan polnost'yu razlichnym sposobom. Vmesto ploskogo nazvaniya prostranstvo s razdelennymi NIS oblastyami, eto ispol'zuet ierarhicheskoe nazvanie, ostavlyayut promezhutki podobnye k takovomu DNS. Vmesto otobrazhenij, tak nazyvaemyh tablic ispol'zuyutsya to, chto sostavleno iz strok i stolbcov, gde lazhdaya stroka predstavlyaet predmet v NIS + baze dannyh, v to vremya kak stolbcy pokryvayut te rekvizit + znaet i zabotitsya otnositel'no nih. Kazhdaya tablica dlya dannyj NIS + - oblast' vklyuchayushchyaya takovyh roditel'skih oblastej. Krome togo, zapis' v tablice mozhet soderzhat' svyaz' s drugoj tablice. |ti osobennosti delayut ego vozmozhnym k poluchenii informacii mnogimi sposobami. Tradicionnyj NIS imeet RPC nomer versii 2, v to vremya kak NIS + - versiyu - 3. NIS + ne kazhetsya, ochen' shiroko ispol'zuemym odnako, i ya dejstvitel'no ne znayu mnogogo otnositel'no etogo. (Horosho, pochti nichego). Po etoj prichine, my ne budet svyazyvat'sya s etim zdes'. Esli Vy - 182 - zainteresovany v izuchenii bol'shego, pozhalujsta obratites' k NIS Sun + spravochnika administratora ([GETST "nisplus"]). 11.3 Klientskaya Storona NIS Esli Vy znakomy s zapis'yu ili pereneseniem prilozhenij seti, Vy obyazatel'no zametite, chto bol'shinstvo NIS otobrazhenij, perechislennyh vyshe sootvetstvuyut biblioteke funkcij v biblioteke C. Naprimer, chtoby poluchit' passwd informaciyu, Vy ispol'zuete getpwnam (3) i getpwuid funkcii (3) kotoraya vozvrashchaet informaciyu scheta, svyazannaya s dannym imenem pol'zovatelya ili chislennoj identichnost'yu pol'zovatelya. Pri normal'nyh obstoyatel'stvah, eti funkcii budut vypolneny pri zaprose po na standartnom fajle, tipa /etc/passwd. Nis-znayushchyaya realizaciya etih funkcij, odnako, budet modificirovanna, i mesto obrashcheniya RPC dlya togo, chtoby imet' NIS server dlya poiska imen pol'zovatelya ili identichnost'. |to sluchaetsya polnost'yu s prilozheniem. Funkciya mozhet takzhe "konkatenirovat' " NIS otobrazhenie ili " zamenit' " pervonachal'nuyu kartoteku s etim. Konechno, eto ne otnositsya k real'noj modifikacii fajla, eto tol'ko oznachaet to, chto on poyavlyaetsya k prilozheniyu kak esli by fajl byl by zamenen ili konkatenirovan. Dlya ttadicionnyh NIS realizacij, tam ispol'zovalis' obshchie usloviya, otnositel'no kotoryh zamenennye otobrazheniya, i kotorye byli konkatenirovany k ishodnoj informacii. Nekotorye, podobno passwd otobrazheniyam, trebuemym kludgy modifications kartoteki passwd, kotoryj, kogda vypolnen nepravil'no, obnaruzhil by zashchitu. CHtoby izbezhat' etogo pitfalls, NYS ispol'zuet obshchuyu shemu konfiguracii eto opredelyaet, ispol'zuet li chastnoe mnozhestvo klientskih funkcij pervonachal'nuyu karto i v kakom poryadke. |to budet opisannyj pozzhe. 11.4 Zapusk NIS Servera Posle takogo mnogogo teoreticheskogo techno-babble, eto - vremya, chtoby ochitstit' nashi ruki ot gryaznoj raboty s konfiguracii. V etom razdele, my opishem konfiguraciyu NIS servera. Esli imeetsya uzhe NIS zapusk - 183 - servera na vashej seti, Vy ne dolzhny budete ustanovit' vash sobstvennyj server; v etom sluchae, to Vy mozhete bezopasno propuskat' etot razdel. <> Note that if you are just going to experiment with the server, make sure you don't set it up for a NIS domain name that is already in use on your network. This may disrupt the entire network service and make a lot of peo- ple very unhappy, and very angry. V nastoyashchee vremya ispol'zuyutsya dva NIS servera, svobodno dostupnye dlya Linux, odin soderzhitsya v yps pakete Tobias Reber's, i drugoj v Peter Erikson's ypserv package. |to ne dolzhno imet' znachenie, kotoryj Vy zapuskaete, nezavisimo ot togo, ispol'zuete li Vy NYS ili NIS klientskij kod, kotoryj nahoditsya v libc v nastoyashchee vremya. Vo vremya etoj zapisi, cifra dlya obrabotki NIS podchinennyh serverov, kazhetsya, bolee polnoj v yps. Tak chto, esli Vy dolzhny imet' delo s podchinennymi serverami, yps mog by byt' luchshim vyborom. Posle ustanovki programmy servera (ypserv) v /usr/sbkn, Vy dolzhny sozdat' katalog, kotoryj budet provodit' otobrazhenie, registriruemo na Vashem servere. Pri ustanovke NIS oblasti dlya brewery domain, otobrazheniya shlo by k /var/yp/brewery. Server opredelyaet obsluzhivalo li eto chastnuyu NIS oblast', proveryaya est' li katalog otobrazhenij. Esli Vy blokiruete obsluzhivanie dlya nekotoroj NIS oblasti, udostoverites' udalen li katalog takzhe. Otobrazheniya obychno sohranyayutsya v kartotekah DBM, chtoby uskorit' poiski. Oni sozdayutsya ot glavy, registriruyushchej ispol'zovanie programm, nazyvaemoj makedbm (dlya Tobias' server) ili dbmload (dlya servera Peter's). Oni ne mogut byt' izmenchivymi. Preobrazovani e glavy registriruet v formu parseable dbmload obychno trebuya nekotorogo awk ili sed, kotorye imeyut tendenciyu, chtoby byt' nemnogo utomitel'nymi k tipu. Sledovatel'no, Peter Eriksson's Ypserv paket soderzhit Formirovanie kotoryj delaet vsyu rabotu za Vas. Vy dolzhny ustanovit' eto kak - 184 - Formirovanie fajla v vashem otobrazhenii, i otredaktirovat' eto, chtoby otrazit' otobrazheniya kotorye Vy hotite raspredelit'. V vershine fajla Vy nahod uslugi Ypserv. Po umolchaniyu, prosmotry linii chto - nibud' vrode etogo: all: ethers hosts networks protocols rpc services passwd group netid Esli Vy ne hotite proizvodit' ethers.byname i ethers.byaddr otobrazheniya, naprimer, prosto udalite predposylku efirov iz etogo pravila.CHtoby proverit' vashu ustanovku, eto mozhet udovletvoryat' tomu, chtoby nachat' s tol'ko odnogo ili dvuh otobrazhenii, podobno uslugam. * Otobrazheniya. Posle redaktirovaniya Formirovaniya fajla, v to vremya kak Vy nahodites' v kataloge otobrazhenij, nabirite "make". |to avtomaticheski generiruet i ustanavlivat' otobrazheniya. Vy dolzhny udostoverit'sya, chtoby modificirovat' otobrazheniya vsyakij raz, kogda Vy izmenyaete glavnyj fajl, inache izmeneniya ostanutsya nevidimymi dlya seti. Sleduyushchij razdel ob座asnyaet, kgk konfigurirovat' NIS klientskij kod. Esli vasha ustanovka ne rabotaet, Vy dolzhny probovat' vyyasnit' ili lyubye zaprosy dostignut vashego servera ili net. Esli Vy tochno opredelyaete komandu -D, flazhok linii k NYS serveru, to eto pechataet soobshcheniya otladki na konsoli otnositel'no vseh vhodyashchih zaprosov NIS, i vozvrashchennyh rezul'tatov. Oni dolzhny dat' Vam podskazku otnositel'no togo, gde zadacha nahoditsya. Tobias' server ne imeet nikakoj takoj opci 11.5 Ustanovka NIS Klienta s NYS CHerez ostatok ot etoj glavy, my opishem konfiguraciyu NIS klienta. Vash pervyj shag dolzhen byt' - soobshchit' NYS kotoryj server ispol'zovan dlya NIS obsluzhivaniya, ustanavlivaya eto v fajle konfiguracii /etc/yp.conf. Ochen' prost tipovoj fajl dlya mnozhestva seti Winery's mozhet vyglyadet' sleduyushchim obrazom: - 185 - # yp.conf - YP configuration for NYS library. # domainname winery server vbardolino Pervaya formulirovka soobshchaet vsej NIS klienture, chto oni prinadlezhat k Winery NIS oblasti. Esli Vy upuskaete etu liniyu, NYS ispol'zuet nazvanie oblasti, kotoroj Vy pripisyvali vashu sistemu cherez komandu domainname. Server formulirovki nazyvaetsya NIS serverom. Konechno, IP adresa adresuyutsya k vbardolino, i dolzhny byt' hostom v fajle hosta; v kachestve al'ternativy, Vy mozhete ispol'zovat' adres IP neposredstvenno s formulirovkoj servera. V forme, pokazannoj vyshe, komanda servera soobshchaet, chtoby NYS ispol'zoval imenovannyj server lyuboj NIS oblasti kotoroj mozhet byt'. Esli, odnako, Vy peremeshchaete vashu mashinu mezhdu razlichnymi NIS oblastyami chasto, to Vy vozmozhno zahotite sohranit' informaciyu dlya otdel'nyh oblastej v kartoteke yp.conf. Vy mozhete imet' informaciyu otnositel'no serverov dlya razlichnyh NIS oblastej v Yp.conf, pribavlyaya NIS nazvanie oblasti k formulirovke servera. Dlya obrazca, Vy mogli by izmen"tipovoj fajl dlya portativnoj |VM, chtoby eto vyglyadilo podobno etomu: # yp.conf - YP configuration for NYS library. # server vbardolino winery server vstout brewery |to pozvolyaet Vam vydat' portativnuyu |VM v lyuboj iz dvuh oblastej, prosto pri ustanovke zhelatel'noj NIS oblasti pri nachal'noj zagruzke vvedite komandu nazvaniya. Posle sozdaniya etogo bazisnogo fajla konfiguracii, i uverennosti v tom eto - vsemirno - chitaemyj, Vy zapustit' vash pervyj kriterij, chtoby proverit', mozhete li Vy podsoedinit'sya k vashemu serveru. Udostoverites', chto vybrano otobrazhenie vashego servea, podobno - 186 - hosts.byname, i ispytaniyu, chtoby vosstanovit', ispol'zuya ypcat utilitu. Ypcat, podobno vsem drugim administrativnym NIS instrumental'nym sredstvam, dolzhen zhit' v /usr/sbin. # ypcat hosts.byname 191.72.2.2 vbeaujolais vbeaujolais.linus.lxnet.org 191.72.2.3 vbardolino vbardolino.linus.lxnet.org 191.72.1.1 vlager vlager.linus.lxnet.org 191.72.2.1 vlager vlager.linus.lxnet.org 191.72.1.2 vstout vstout.linus.lxnet.org 191.72.1.3 vale vale.linus.lxnet.org 191.72.2.4 vchianti vchianti.linus.lxnet.org Vyvod, kotoryj Vy poluchaete, dolzhen byt' na podobie vyshepokazannogo. Esli Vy poluchaete soobshchenie ob oshibkah vzamen, kotoroe govorit "Can't bind to server which serves domain" ili chto-nibud' na podobie, zatem ili NIS nazvanie oblasti, kotoroe ne imeet server sootvetstviya, opredelennyj v yp.conf, ili server - unreachable po nekotorym prichinam. V poslednem sluchae, udostoverites' v tom, chto ping mnozhestvu proizvoditsya polozhitel'nyj rezul'tat, i chto eto dejstvitel'no zapu Vy mozhete proverit' poslednij, ispol'zuya rpcinfo, kotoryj dolzhen proizvesti sleduyushchij vyvod: # rpcinfo -u serverhost ypserv program 100004 version 2 ready and waiting 11.6 Vybor pravyh otobrazhenij Udostover'tes' v tom, chto Vy mozhete dostich' NIS servera, Vy dolzhny reshit' kotoryj konfiguracionnyj fajl, chtoby zamenit' ili uvelichit' s NIS otobrazheniyami. Obychno, Vy zahotite ispol'zovat' NIS otobrazheniya dlya mnozhestva i funkcij poiska parolya. Vysheupomyanu tyj osobenno polezen, esli Vy ne zapuskaete BIND. Poslednij razreshaet vsem pol'zovatelyam zaregestrirovat'sya na ih account iz lyuboj sistemy v NIS oblasti; eto obychno trebuet razdeleniya central'nogo /mestnogo k |to ob座asneno podrobno v razdele 11.7 nizhe. Drugoe otobrazhenie, podobno services.byname, ne takoe dramaticheskoe uvelichenie, no sohranyayut Vas - 187 - ot nekotoroj raboty redaktirovaniya, esli Vy ustanavlivaete lyubye setevye prilozheniya kotorye ispol'zuyut servisnoe nazvanie, to eto ne v standartnom fajle uslug. Voobshche, Vy hotite imet' nekotoruyu svobodu vybora kogda poisk- funkciya ispol'zuet lokal'nye fajly, i kogda eto delaet zapros NIS servera. NYS pozvolyaet Vam skonfigurirovat' poryadok, v kotorom funkciya obrashchaetsya k etim uslugam. |to upravlyaetsya cherez kartoteku /etc/nsswitch.conf, kotoryj zameshchaet obsluzhivanie nazvaniya, no konechno ne ogranichivaet nazvanie obsluzhivanie. Dlya lyuboj iz funkcij poiska dannyh eto soderzhit liniyu, imenuyushchie uslugi, chtoby ispol'zovat'. Pravil'nyj poryadok uslug zavisit ot tipa dannyh. |to vryad li to, chto services.byname otobrazhenie budet soderzhat' otlichie vhodov iz teh v lokal'nom fajle uslug; eto mozhet tol'ko soderzhat' bol'she. Tak horoshij vybor mozhet byt', chtoby sdelat' zapros lokal'nyh fajlov snachala, i proveryat' NIS tol'ko esli servisnoe nazvanie ne bylo najdeno. Hostname informaciya, s drugoj storony, mozhet izmenyatsya pchenyu chasto, tak, chtoby DNS ili NIS server vsegda imel naibolee tochnyj accoun fajl sohran kak dublirrovanie, esli DNS i NIS terpel neudachu. V etom sluchae, Vy zahoteli by proverit' lokal'nyj poslednij fajl. Primer nizhe pokazyvaet, kak skonfigurirovat' gethostbyname (2), gethostByaddr (2), i getservbyname funkcii (2) kak opisano vyshe. Oni budut perechislenny kak uslugi po ocheredi; esli poisk idet horosho, to rezul'tat budet vozvrashchen, inache sleduyushchee obsluzhivanie osuzhdeno. # small sample /etc/nsswitch.conf # hosts: nis dns files services: files nis Polnyj spisok uslug, kotorye mogut ispol'zovat'sya s zapis'yu v Nsswitch.conf fajle pokazyny nizhe. Fakticheskie otobrazheniya, fajly, servery i veshchi, kotorye delayut zapros zavisyat ot nazvaniya zapisi. - 188 - Nisplus ili nis + ispol'zuet NIS + server dlya etoj oblasti. Lokalizaciya servera poluchena iz kartoteki /etc/nis.conf. Nis Ispol'zuet tekushchij NIS server etoj oblasti. Lokalizaciya servera delal zapros, skonfigurirovannyj v kartoteke yp.conf kak pokazano v predydushchem razdele. Dlya zapisi mnozhestv, otobrazheniya Hosts.byname i hosts.byaddr delayut zapros. -176 - dns ispol'zuet DNS server. |tot sluzhebnyj tip polezen tol'ko dlya zapisi hosta. Servera delayushchie zapros, vse eshche opredelyayutsya v sootvetstvii co standartom resolv.conf fajla. files ispol'zuet lokal'nyj fajl, takoj kak /etc/hosts fajl dlya host zapisi. dbm ishchet informaciyu iz DBM fajlov, razmeshchennyh v /var/dbm. Imya, ispol'zuemoe dlya fajla - sootvetstvuyushchego NIS otobrazhenie. V nastoyashchee vremya, NYS podderzhivaet sleduyushchie nsswitch.conf zapisi: hosts, networks, passwd, group, shadow, gshadow, services, protocols, rpc, i dr. Drugie zapisi vozmozhno mogut byt' dobavlenny. Risunok 11.6 pokazyvaet bolee polnyj primer, kotoryj demonstriruet druguyu &osogennost' nsswitch.conf: klyuchevoe slovo [NOTFOUND=return] v zapisyah hostov soobshchila by NYS - vernut'sya, esli zhelaemyj punkt ne byl najden v NIS ili v DNS baza dannyh. To est' NYS prodolzhit iskat' lokal'nye fajly, tol'ko esli obrashcheniya k NIS i DNS serveram terpyat neudachu po kakoj-libo drugoj prichine. Lokal'nye fajly budut zatem tol'ko ispol'zovat'sya pri nachal'noj zagruzke i kak backup, kogda NIS server vyklyuchen. 11.7 Ispol'zovanie passwd i gruppy Maps Odno iz glavnyh prilozhenij NIS nahoditsya v sinhronizacii pol'zovatelya i account informacii otnositel'no vseh mnozhestv v NIS oblasti. K koncu, Vy - 189 - obychno hranit tol'ko malyj lokal'nyj fajl /etc/passwd, k kotoromu dobavlena site-wide informaciya iz NIS otobrazhenij. Odnako, prosto predostavleniya vozmozhnosti NIS poiska dlya etogo obsluzhivaniya v nsswitch.conf ne vpolne dostatochno. Polagayas' na informaciyu parolya, raspredelennuyu NIS, Vy snachala dolzhny udostoverit'sya, chto chislovaya identichnost' pol'zovatelya vseh pol'zovatelej, kotorye u Vas est' v Vashem lokal'nom passwd fajlesootvetstvuyut idei NIS servera otnositel'no identichnosti pol'zovatelya. Vy vozmozhno zahotite ispol'zovat' eto dlya drugih celej takzhe, podobno ustanovke NFS znachenij ot drugih hostov na vashej seti. # /etc/nsswitch.conf # hosts: nis dns [NOTFOUND=return] files networks: nis [NOTFOUND=return] files services: files nis protocols: files nis rpc: files nis Risunok 17. Primernyj nsswitch.conf fajl. Esli lyubaya iz chislovyh identichnosti v /etc/passwd ili /etc/group otklonyaetsya ot teh, kotorye v maps, to Vy dolzhny skorrektirovat' fajl ownerships dlya vseh fajlov, kotorye prinadlezhat etomu pol'zovatelyu. Snachala Vy dolzhny zamenit' vse uids i gids v passwd i v gruppah novyh znachenij; zatem najdite vue fvjly, kotorye prinadlezhat pol'zovatelyam i byly tol'ko chto izmeneny, i v zaklyuchenie zamenite ih ownerships. Primite novosti ispol'zuemye dlya togo, chtoby imet' identichnost' pol'zovatelya byla by 9, i okir imel by identichnost' pol'zovatelya 103, kotorye byli zameneny na nekotoroe drugoe znachenie; Vy mogli by zatem vyporlnit' sleduyushchie komandy: # find / -uid 9 -print >/tmp/uid.9 # find / -uid 103 -print >/tmp/uid.103 # cat /tmp/uid.9 | xargs chown news - 190 - # cat /tmp/uid.103 | xargs chown okir Vazhno to, chto Vy vypolnyaete eti komandy s novym, ustanovlennym passwd fajlom, i chto Vy sobiraete vse imena fajlov prezhde, chem Vy izmenenite ownership lyubogo iz nih. Dlya togo, chtoby modificirovat' ownerships gruppy fajlov, Vy dolzhny ispol'zovat' pohozhuyu komandu. Sdelav eto, chislennyj uid's i gid's na vashej sisteme soglasit'sya s temi hostami, kotorye raspolozhenny v Vashej NIS oblasti. Sleduyushchij shag budet - pribavit' linii konfiguracii k nsswitch.conf, kotoryj vklyuchayut NIS poiski dlya pol'zovatelya i informacii gruppy: # /etc/nsswitch.conf - passwd and group treatment passwd: nis files group: nis files |to zastavlyaet komandu vhoda v sistemu, i vseh ee druzej snachala sdelat' zapros NIS maps, kogda pol'zovatel' probuet log in, i esli etot poisk terpit neudachu - obratno obrashchaetsya k lokal'nym fajlam. Obychno, Vy udalite pochti vseh pol'zovatelej iz Vashego lokal'nogo fajla, i tol'ko ostavite zapisi dlya root i generic accounts podobno pochte. |to potomu, chto nekotorye nasushchnye zadachi sistemy mogut trebovat' k map uids imya pol'zovatelya ili naoborot. Naprimer, administrativnyj cron job mozhet vypolnit' komandu su, dlya togo chtoby vremenno stat' novostyami, ili UUCP podsistema mozhet otpravlyat' po pochte otchet sostoyaniya. Esli novosti i uucp ne imeyut vhod v lokal'nyj fajl passwd, to eti jobs budut, k sozhaleniyu, terpet' neudachu v techenie&NIS"brownout. Imeyutsya dve bol'shie problemy: s odnoj storony, ustanovka, kak uzhe bylo opisano v nachale, do sih por rabotaet tol'ko dlya naborov programm vhoda v sistemu, kotorye ne ispol'zuyut tenevoj parol', podobno tem, chto vklyucheny v util-linux paket. Putanica pri ispol'zovanii tenevyh parolej s NIS budet ob座asnena nizhe. S drugoj storony, komandy vhoda v sistemu - ne edinstvenye, kotorye obrashchayutsya k passwd fajlu - posmotrite na komandu ls, kotoruyu bol'shinstvo lyudej ispol'zuet pochti postoyanno. - 191 - Pri vypolnenii dlinnoj raspechatki, ls vydelit simvolicheskie imena dlya pol'zovatelya i gruppu vladel'cev fajla; to est' dlya kazhdogo uid i gid eto predstavlyaet soboj celuyu shvatku, eto dolzhno sdelat' zapros na NIS server, tol'ko odin raz. |to uzhasno zamedlit vypolnenie, esli vasha lokal'naya set' - clogged, ili, eshche huzhe, kogda NIS server ne na toj zhe samoj seti, dlya etogo datagrammy dolzhny projti cherez programmu marshrutizacii. No poka eto eshche ne vsya istoriya. Voobrazite, chto sluchitsya esli pol'zovatel' zahochet izmenit' svoj parol'. Obychno, ona vyzovet passwd, kotoryj schitaet novyj parol' i modificiruet lokal'nyj fajl passwd. |to nevozmozhno sdelat' s NIS, tak kak s teh por fajl lokal'no bol'she ne dostupen, no esli pol'zovateli podsoedinilis' k NIS serveru, i vdrug zahoteli izmenit' parol', to dlyach etogo, k sozhaleniyu net opcii. Poetomu, NIS obespechivaet otpusk v zamene dlya passwd, nazyvaemogo yppasswd, kotoryj delaet analogichnuyu veshch' v prisutstvii NIS. Dlya izmeneniya parolya na host servere, no v kontakt s yppasswdd daemon na tom zhe samom hoste cherez RPC, i obespechivaet ego modificiruemoj informaciej parolya. Obychno, Vy ustanavlivaete yppasswd dlya normal'noj programmy, delaya chto - nibud' vrode etogo: # cd /bin # mv passwd passwd.old # ln yppasswd passwd V to zhe samoe vremya Vy dolzhny ustanovit' rpc.yppasswdd na server i zapustit' ego iz rc.inet2. |to effektivno slroet lyubye iskozheniya NIS ot vashih pol'zovatelej. 11.8 Ispol'zovanie NIS s Shadow Support Ne imeetsya nikakoj NIS podderzhki dlya mest, kotorye ispol'zuyut tenevoj vhod v sistemu nabora programm. John F. Haugh, avtor tenevogo nabora programm, nedavno vypushchennoj versii tenevyh bibliotechnyh funkcij, opisannyh GNU bibliotekoj GPL k comp.sources.misc. |to uzhe imeet nekotoruyu podderzhku - 192 - dlya NIS, no ona poka eshche ne polna, i fajly poka eshche ne dobavleny k standarnoj biblioteke dlya C. S drugoj storony, pri publikacii informacii iz /etc/shadow cherez NIS vid porazheniya celi tenevogo nabora programm. Hotya NYS funkcii poiska parolya ne ispol'zuyut shadow.byname map ili chto - libo analogichnoe, ochevidno NYS podderzhivaet ispol'zovanie lokal'nogo /etc/shadow fajla. Kogda NYS realizaciya getpwnam obrashchaetsya k prosmotru informacii, svyazannoj s dannym login imenem, sredstva, tochno opredelennye passwd zapis'yu v nsswitch.conf delayut zapros. Nis obsluzhivanie budet prosto iskat' imya v passwd.byname map na NIS servere. Obsluzhivanie fajlov, odnako, proverit, sushchestvuet li /etc/shadow, i esli sushchestvuet, to poprobuet otkryt' eto. Esli ni odin iz fajlov ne prisutstvuet, ili esli pol'zovatel' ne imeet privilegiyu root, to proishodit vozvrashchenie k obychnoj rabote poiska informacii pol'zovatelya v /etc/passwd. Odnako, esli tenevoj fajl sushchestvuet i mozhet byt' otkryt, to NYS izvlechet parol' pol'zovatelya iz shadow. Getpwuid funkciya sootvetstvenno vypolnyaetsya. V etom rezhime, binaries, kompiliruemyj s NYS, budet imet' delo s lokal'noj ustanovkoj tenevogo nabora programm. 11.9 Ispol'zovanie tradicionnogo NIS koda. Esli Vy ispol'zuete kod klienta, kotoryj nahoditsya v standarte libc, to konfiguraciya NIS klienta nemnogo otlichna. S odnoj storony, eto ispol'zuet ypbind daemon dlya togo, chtoby peredat' informaciyu dlya aktivnyh serverov skoree chem schityvat' etu informaciyu iz fajla konfiguracii. Vy sledovatel'no dolzhny udostoveritsya v tom, chto buzhet zapushchen ypbind pri nachal'noj zagruzke. On dolzhen byt' vyzvan posle ustanovlennoj NIS oblasti, i RPC portmapper tozhe dolzhen byt' zapushchen. Vyzov ypcat nuzhen dlya togo, chtoby proverit' rabotaet li server tak, kak on dolzhen (sm. vyshe). Nedavno, imelos' nekotoroe chislo bug reports, kotorye soobshchayut, chto NIS terpit neudachu, soobshchaya pri etom: "clntudp create: RPC: portmapper failure - RPC: unable to receive''. |to vse iz-za nesovmestimogo izmeneniya v sposobe, kak ypbind svyazyvaetsya s bibliotechnymi funkciyam. Poluchaya poslednie istochniki dlya NIS - 193 - utilit i peretransliruya ih, dolzhna byt' ispravlena eta zadacha. (5) Takzhe, sposob tradicionnogo NIS reshaet eto, kak soedinit' NIS informaciyu s etim iz lokal'nyh fajlov otklonyaemuyu ot ispol'zuemogo NYS. Naprimer, chtoby ispol'zovat' NIS otobrazhenie parolya, Vy dolzhny vklyuchit' sleduyushchuyu liniyu gde-nibud' v Vashem /etc/passwd map: +: *:0:0::: |to markiruet mesto gde funkcii poiska parolya "vstavlyayut" NIS otobrazheniya. Vstavka podobnoj linii (minus poslednie dva dvoetochiya) v /etc/group delayut tot zhe samoe dlya group. * maps. Dlya togo, chtoby ispol'zovat' hosts.* maps, raspredelennye NIS, izmenite order line v host.conf fajle. Naprimer, esli Vy hotite ispol'zovat' NIS, DNS, i fajl /etc/hosts (v tom poryadke), to Vy dolzhny izmenit' etu liniyu na: order yp bind hosts Tradicionnaya NIS realizaciya ne podderzhivaet nikakie drugie otobrazheniya v nastoyashchee vremya. 5. Istochnik dlya yp-linux mozhet byt' poluchen iz ftp.uniraderborn.de v kataloge /pub/Linux/LOCAL. 12. Setevaya fajlovaya sistema (NFS) NFS, the network file system, yavlyaetsya vozmozhno naibolee vidnoj set'yu uslug, ispol'zuyushchej RPC. |to pozvolyaet obrashchat'sya k fajlam na otdalennyh hostah tochno tem zhe samym sposobom, kak pol'zovatel' obratilsya by k lyubym" lokal'nym fajlam. Sdelano vozmozhnym smesheniem kernel funkcional'nyh vozmozhnostej na klientskoj storone (kotoraya ispol'zuet otdalennuyu fajlovuyu sistemu) i NFS server na storone servera (kotoryj obespechivaet fajl dannyh). |tot dostup k fajlu polnost'yu ocheviden klientu, i rabotaet cherez vse raznoobrazie serverov i arhitektury hostov. - 194 - NFS predlagaet ryad preimushchestv: + Dannye, k kotorym obrashchayutsya vse pol'zovateli, mogut byt' sohraneny na central'nom hoste, s klienami ustanavlivayushchimi etot katalog pri nachal'noj zagruzke. Naprimer, Vy mozhete sohranit' vse accounts pol'zovatelej na odnom hoste, i imet' vse hosty na Vashem setevom mount /home ot togo hosta. Esli ono ustanovleno bok o bok s NIS, to pol'zovateli mogut zatem vojti v lyubuyu sistemu, i vse eshche rabotat' na odnom mnozhestve fajlov. + Dannye, potreblyayushchie bol'shie kolichestva diskovogo prostranstva mogut byt' sohraneny v edinstvennom hoste. Naprimer, vse fajly i programmy otnosyashchiesya k LaTeX i METAFONT mogut byt' sohraneny i podderzhivat'sya v odnom meste. + Administrativno-upravlencheskaya informaciya mozhet byt' sohranena v adinstvennom hoste. Net nuzhdy ispol'zovat' rcp dlya togo, chtoby ustanovit' tot zhe samyj glupyj fajl na 20 razlichnyh mashin. Linux NFS - v znachitel'noj stepeni rabota Rick Sladkey, (1), kto napisal NFS kernel kod i bol'shie chasti NFS servera. Poslednij, vyvodil iz unfsd prostranstva pol'zovatelya NFS server, pervonachal'no napisannyj Mark Shand, i hnfs Harris NFS server, napisannyj Donald Becker. Davajte teper' posmotrim tom, kak NFS rabotaet: klient mozhet zaprosit' ustanovit' katalog ot otdalennogo hosta na lokal'nom kataloge tem zhe sposobom, i on mozhet ustanovit' fizicheskoe ustrojstvo. Odnako, sintaksis, ispol'zuemyj dlya togo, chtoby tochno opredelit' otlichen li otdalennyj katalog. Naprimer, chtoby mount /home host vlager k /users na vale, administrator vypustil by sleduyushchuyu komandu na vale: (2)  " 1. Rick mozhet byt' najden v jrs@world.std.com. # mount -t nfs vlager:/home /users - 195 - mount zatem poprobuet soedinit'sya s mountd, ustanavlennyj s daemon na vlager cherez RPC. Server proverit, razreshaetsya li vale povysit' katalog, i esli tak, vernet eto k file handle. |tot handle fajl budet ispol'zovat'sya vo vseh posledovatel'nyh zaprosah k kartotekam nizhe /users. Kogda kto -to obrashchaetsya k fajlu nad NFS, kernel mesta RPC vyzovut nfsd (NFS daemon) na mashine servera. |to obrashchenie beret handle fajl, imya fajla, k kotoromu obrashchayutsya, i user's user i identichnost' gruppy kak parametry. Oni ispol'zuyutsya v opredelenii prav dostupa k tochno opredelennomu fajlu. CHtoby predotvratit' ot nesankcionirovannogo chteniya ili modificirovaniya fajla, pol'zovatel' i identichnost' gruppy dolzhny byt' teme zhe samymi na oboih hostah. Na bol'shinstve Un*x realizacij, NFS funkcional'nye vozmozhnosti oboih klientov i server vypolneny kak kernel uroven' daemons, kotorye nachaty iz prostranstva pol'zovatelya pri nachal'noj zagruzke sistemy. Oni - NFS daemon (nfsd) na hoste servera, i blok vvoda - vyvoda Daemon (biod) vypolnyayushchijsya na klientskom hoste. CHtoby uluchshit' proizvoditel'nost', biod vypolnyaet asinhronnyj vvod - vyvod, ispol'zuya chtenie - vpered i zapis'-nazad; takzhe, neskol'ko nfsd daemons obychno zapuskaetsya sovmestno. NFS realizaciya Linux, nemnogo otlichna v etom samom klientskom kode, krepko ob容dinena v fajlovoj sisteme (VFS) uroven' yadra i ne trebuet dopolnitel'nogo upravleniya cherez biod. S drugoj storony kod servera zapuskaetsya polnost'yu v prostranstve pol'zovatelya, tak, chtoby pri zapuske neskol'kih kopij servera v odno i to zhe vremya bylo by pochti nevozmozhnym iz- za sinhronizacii. Linux NFS, v nastoyashchee vremya takzhe sushchestvuet otsutstvie chteniya - vpered i zapisi-nazad, no Rick Sladkey planiruet ispravit etot nedostatolk v blizhajshee vremya. (3) Samaya gol'家ya problema s Linux NFS kodom - to, chto Linux kernel versii 1.0 ne sposoben raspredelit' pamyat' v kuskah bol'shih chem 4k; kak sledstvie, setevoj kod ne mozhet obrabatyvat' datagrammy bol'shie chem priblizitel'no 3500 bajtov posle vychitaniya razmera zagolovka i t.d. |to znachit, chto peredacha k i iz NFS daemons vypolnyayushchejsya na sistemah, kotorye ispol'zuyut bol'shie UDP datagrammy po umolchaniyu (naprimer 8k na SunOS) - 196 - dolzhny byt' umen'shenny v razmere iskustvenno. |tot prichinyaet vred harakteristike pod vliyaniem nekotoryh obstoyatel'stv. (4) |tot predel vhodit v pozdnie Linux-1.1 yadra, i klientskij kod byl modificirovan dlya togo, chtoby pol'zovat'sya etim preimushchestvom. 2. Zamet'te, chto Vy mozhete opustit' -t nfs argument, potomu chto mount vidit iz dvoetochiya to, chto eto opredelyaet NFS ob容m. 3. Zadacha s write-behind - to, chto kernel bufer kesha indeksirovan parami device/inode, i sledovatel'no ne mozhet ispol'zovat'sya dlya nfs- ustanovlennyh fajlovyh sistem. 12.1 Podgotovka NFS Prezhde, chem Vy mozhete ispol'zovat' NFS, bud' eto server ili klient, Vy dolzhny udostoverit'sya, chto Vashe yadro imeet NFS podderzhku, kompiliruemuyu v. Bolee novye yadra dlya etogo imeyut prostoj interfejs na proc fajlovoj sisteme, fajl /proc/filesystems, kotoryj Vy mozhete otobrazit' ispol'zuya cat: $ cat /proc/filesystems minix ext2 msdos nodev proc nodev nfs Esli nfs otsutstvuet iz etogo spiska, to Vy dolzhny skompilirovat' Vashe sobstvennoe yadro s vklyuchennym NFS. Konfigurirovanie kernel setevyh opcij ob座asneno v razdele " Kernel konfiguraciya " glavy 4 .. Dlya bolee staryh yader do 1.1 Linux, samyj prostoj spo