kopii staryh registracionnyh fajlov sohranyayutsya v log.o, log.oo, i t.d. errlog |to - fajl registracii vseh soobshchenij ob oshibkah, sozdannyh C News. On ne vklyuchayut plohie stat'i, i t.d. |tot fajl budet otpravlen po pochte k newsmaster (usenet po umolchaniyu) avtomaticheski newsdaily, esli on ne-pust. Errlog ochishchaetsya newsdaily. Starye kopii sohranyayutsya v errlog.o i t. d. batchlog On registriruet vse vypolneniya sendbatches. On obychno malo interesen. On takzhe zavisit ot newsdaily. watchtime |to - pustoj fajl, sozdavaemyj kazhdyj raz pri vypolnenii newswatch. 18.8 Soobshcheniya Upravleniya Usenet protokol novostej znaet special'nyj klass statej, kotorye vyzyvayut nekotorye otvety ili dejstviya sistemy novostej. Oni nazyvayutsya soobshcheniyami upravleniya. Oni raspoznayutsya prisutstviem polya Control v zagolovke stat'i, kotoroe soderzhit imya operacii upravleniya, kotoruyu nuzhno vypolnit'. Imeyutsya otdel'nye tipy etih operacij, kotorye obrabatyvayutsya komandami obolochki, raspolozhennymi v /usr/lib/news/ctl. Bol'shinstvo iz nih vypolnit ih dejstvie avtomaticheski vo vremya obrabotki stat'i C News, bez togo, chtoby uvedomit' newsmaster. Po umolchaniyu, tol'ko checkgroups soobshcheniya budut vrucheny newsmaster, no Vy mozhete izmenyat' eto, redaktiruya komandy. 18.8.1 Soobshchenie Otmena Naibolee shiroko izvestnoe soobshchenie - otmena, kotoroj pol'zovatel' - 327 - mozhet otmenyat' stat'yu, poslannuyu ranee. Ono dejstvitel'no udalyaet stat'yu iz katalogov spool, esli ona sushchestvuet. Soobshchenie otmeny budet poslano k vsem abonentam, kotorye poluchayut novosti iz takih grupp, nezavisimo ot togo, byla li stat'ya zamechena uzhe ili net. Nuzhno prinyat' vo vnimanie vozmozhnost' togo, chto pervonachal'naya stat'ya byla otsrochena nesmotrya na soobshchenie sokrashcheniya. Nekotorye sistemy novostej pozvolyayut pol'zovatelyam otmenyat' soobshcheniya drugogo cheloveka; eto - konechno opredelennyj minus. 18.8.2 Newgroup i rmgroup Dva soobshcheniya imeyut delo s sozdaniem ili udaleniem newsgroups - eto newgroup i rmgroup. Newsgroups nizhe " obychnoj " ierarhii mogut byt' sozdany tol'ko posle togo, kak obsuzhdenie i utverzhdenie bylo provedeno sredi Usenet chitatelej. Pravila, obrashchayushchiesya k alt ierarhii uchityvayut chto koe-chto blizko k anarhii. Dlya podrobnoj informacii sm. regulyarnye registracii v news.announce.newusers i news.announce.newgroups. Nikogda ne posylajte newgroup ili rmgroup soobshchenie samostoyatel'no, esli Vy opredelenno ne znaete, chto Vam pozvoleno. 18.8.3 Checkgroups Soobshchenie Checkgroups soobshcheniya posylayutsya administratorami novostej, chtoby dlya vseh abonentov vnutri seti sinhronizirovat' ih fajly active s faktami Usenet. Naprimer, kommercheskie postavshchiki uslug Internet mogli by vypuskat' takoe soobshchenie k abonentu ih zakazchikov. Odin raz v mesyac "official'noe" checkgroups soobshchenie dlya glavnyh ierarhij zaregistrirovano v comp.announce.newgroups ih regulyatorom. Odnako, ono zaregistrirovano, kak obychnaya stat'ya, a ne kak upravlyayushchee soobshchenie. CHtoby vypolnit' operaciyu checkgroups, sohranite etu stat'yu v fajl, skazhem /tmp/check, udalite vse do nachala soobshcheniya upravleniya neposredstvenno, i peredajte eto k checkgroups komande, ispol'zuya sleduyushchuyu komandu: # su news -c "/usr/lib/news/bin/ctl/checkgroups" < /tmp/check |to modificiruet vash newsgroups fajl, dobavlyaya gruppy, perechislennye v localgroups. Staryj newsgroups fajl budet peremeshchat'sya v newsgroups.bac. Obratite vnimanie, chto registraciya soobshcheniya lokal'no redko budet - 328 - rabotat', potomu chto inews otkazyvaetsya prinimat' eto kak stat'yu. Esli C News nahodit nesootvetstviya mezhdu spiskom checkgroups i fajlom active, eto proizvedet spisok komand, kotorye moderniziruyut vash punkt, i soobshchat eto administratoru novostej. Vyvod obychno pohodit na eto: From news Sun Jan 30 16:18:11 1994 Date: Sun, 30 Jan 94 16:18 MET From: news (News Subsystem) To: usenet Subject: Problems with your active file Sleduyushchie newsgroups ne dopustimy i dolzhny byt' udaleny. alt.ascii-art bionet.molbio.gene-org comp.windows.x.intrisics de.answers Vy mozhete delat' eto, vypolnyaya komandy: /usr/lib/news/bin/maint/delgroup alt.ascii-art /usr/lib/news/bin/maint/delgroup bionet.molbio.gene-org /usr/lib/news/bin/maint/delgroup comp.windows.x.intrisics /usr/lib/news/bin/maint/delgroup de.answers Sleduyushchie newsgroups otsutstvovali. comp.binaries.cbm comp.databases.rdb comp.os.geos comp.os.qnx comp.unix.user-friendly misc.legal.moderated news.newsites soc.culture.scientists talk.politics.crypto talk.politics.tibet - 329 - Kogda Vy poluchaete takoe soobshchenie ot vashej sistemy novostej, ne otbrasyvajte ego vslepuyu. V zavisimosti ot togo, kto poslal checkgroups soobshchenie, ono mozhet ispytyvat' nedostatok neskol'kih grupp ili dazhe vseh ierarhij; tak chto Vy dolzhny byt' ostorozhny otnositel'no udaleniya lyubyh grupp. Esli Vy nahodite gruppy, perechislennye kak otsutstvuyushchie i Vy hotite imet' ih v vashem punkte, Vy dolzhny dobavit' ih, ispol'zuya addgroup komandu. Sohranite spisok otsutstvuyushchih grupp v fajle i peredajte ego sleduyushchej nebol'shoj komande: #!/bin/sh cd /usr/lib/news while read group; do if grep -si "^$group[[:space:]].*moderated" newsgroup; then mod=m else mod=y fi /usr/lib/news/bin/maint/addgroup $group $mod done 18.8.4 sendsys, version, i senduuname V zaklyuchenie, imeyutsya tri soobshcheniya, kotorye mogut ispol'zovat'sya, chtoby vyyasnit' otnositel'no topologii seti. |to - sendsys, version, i senduu- imya. Oni zastavlyayut C News vozvrashchat' otpravitelyu fajl sys, versiyu programmnogo obespecheniya, i vyvod uuname (1), sootvetstvenno. C News - ochen' lakonichno otnositel'no soobshcheniya version; ono vozvrashchaet prosto neukrashennoe "C". Snova, Vy nikogda ne dolzhny vydavat' takoe soobshchenie, esli Vy ne uverenny, chto eto ne mozhet povredit' vashej (regional'noj) seti. Otvety sendsys soobshcheniyam mogut bystro polozhit' set' UUCP. 18.9 C News v NFS Srede Prostoj sposob raspredelyat' novosti vnutri lokal'noj seti sostoit v tom, chtoby hranit' vse novosti na central'nom host, i eksportirovat' relevantnye katalogi cherez NFS, tak, chtoby newsreader mog prosmatrivat' - 330 - stat'i neposredstvenno. Preimushchestvo etogo metoda nad NNTP - to, chto neproizvoditel'nye zatraty, zaklyuchaemye v poiske i prodevanii nitki statej yavlyayutsya znachitel'no nizhe. NNTP, s drugoj storony, pobezhdaet v raznorodnoj seti, gde oborudovanie izmenyaetsya shiroko sredi glavnyh |VM, ili gde pol'zovateli ne imeyut ekvivalentnyh prav na mashine servera. Pri ispol'zovanii NFS, stat'i, zaregistrirovannye na lokal'nom host dolzhny byt' poslany k central'noj mashine. Takzhe, Vy mogli by hotet' zashchishchat' vashu oblast' spool novostej, eksportiruya ih tol'ko dlya chteniya, chto trebuet peresylki k central'noj mashine, takzhe. C News obrabatyvaet eto ochevidno. Kogda Vy otpravlyaete po pochte stat'yu, vash newsreader obychno vyzyvaet inews, chtoby vvesti stat'yu v sistemu novostej. |ta komanda vypolnyaet ryad proverok na stat'e, zavershaet zagolovok, i proveryaet fajlovyj server v /usr/lib/news. Esli etot fajl sushchestvuet i soderzhit hostname otlichnyj ot imeni lokal'nogo host, inews vyzyvaetsya na tot host server cherez rsh. Tak kak inews komanda ispol'zuet ryad dvoichnyh komand i fajlov podderzhki ot C News, Vy dolzhny takzhe imet' C News, ustanovlennyj lokal'no, ili ustanavlivat' programmnoe obespechenie novostej iz servera. CHtoby rsh vyzov rabotal pravil'no, kazhdyj pol'zovatel' dolzhen imet' ekvivalentnyj vhod na sistemu servera, to est' vhod kotoroyj ona mozhet registrirovat' bez zaprosa o parole. Udostoverites', chto hostname, dannyj v servere bukval'no sootvetstvuet vyvodu komandy hostname (1) na mashine servera, inache C News budet zaciklivat'sya navsegda pri popytke poluchit' stat'yu. 18.10 Instrumental'nye sredstva Soprovozhdeniya i Zadachi Nesmotrya na slozhnost' C News, zhizn' administratora novostej mozhet byt' dovol'no prosta, potomu chto C News obespechivaet Vas rasshirennym raznoobraziem instrumental'nyh sredstv soprovozhdeniya. Nekotorye iz nih prednaznacheny, chtoby byt' vypolnennymi regulyarno iz cron, podobno newsdaily. Ispol'zovanie etih komand znachitel'no umen'shaet ezhednevnuyu zabotu i podachu trebovanij vashej ustanovki C News. Esli ne ustanovleno inache, eti komandy raspolozheny v /usr/lib/news/bin/maint. Obratite vnimanie, chto Vy dolzhny stat' pol'zovatelem pered vyzovom etih komand. Pri vypolnenii ih kak super-pol'zovatel' eti fajly mogut stat' nedostupnymi C News. - 331 - newsdaily Imya uzhe govorit: eto vypolnyaetsya odin raz v den'. |to - vazhnaya komanda, kotoraya pomogaet Vam hranit' registracionnye fajly malymi, sohranyaya kopii kazhdogo iz poslednih treh vypolnyavshihsya. Ona takzhe probuet schityvat' lyubye anomalii, podobno nesvezhim paketam vo vhodyashchih i ishodyashchih katalogah, registracii v neizvetnyh gruppah, i t.d. Voznikayushchie v rezul'tate soobshcheniya ob oshibkah budut otpravleny po pochte k newsmaster. newswatch |to - komanda, kotoraya dolzhna byt' vypolnena regulyarno, chtoby iskat' anomalii v sisteme novostej, odin raz v chas ili okolo etogo. Ona prednaznachena obnaruzhivat' problemy, kotorye budut imet' neposredstvennyj effekt na operativnosti vashej sistemy novostej i otpravlyat' po pochte otchet problemy k newsmaster. Otmechaemye veshchi vklyuchayut nesvezhie fajly blokirovki, kotorye ne udaleny, avtomaticheskie vhodnye pakety, i nedostatok diskovogo prostranstva. addgroup Dobavlyaet gruppu k vashemu punktu lokal'no. Sootvetstvuyushchij vyzov addgroup groupname y|n|m|=realgroup Vtoroj argument imeet to zhe samoe znachenie kak flag v fajle active, chto lyuboj mozhet otpravit' po pochte k gruppe (y), chto nikto ne mozhet otpravit' po pochte (n), chto ona umen'shena (m), ili chto ona yavlyaetsya special'noj dlya drugoj gruppy (=realgroup). Vy mogli by takzhe ispol'zovat' addgroup, kogda pervye stat'i v nedavno sozdannoj gruppe pribyvayut ran'she chem soobshchenie upravleniya newgroup, kotoroe prednaznacheno, chtoby sozdat' ee. delgroup nozvolyaet Vam udalyat' gruppu lokal'no. Vyzovite eto kak delgroup groupname Vy vse eshche dolzhny udalit' stat'i, kotorye ostayutsya v kataloge spool. V kachestve al'ternativy, Vy mogli by ostavlyat' eto natural'nomu hodu sobytij (a.k.a. Expire) chtoby udalyat' ih. addmissing Dobavlyaet otsutstvuyushchie stat'i k fajlu hronologii. Vypolnite - 332 - etu komandu, kogda imeyutsya stat'i, kotorye, kazhetsya, zavisayut navsegda. newsboot |ta komanda dolzhna byt' vypolnena pri nachal'noj zagruzke sistemy. Ona udalyaet lyubye fajly blokirovki, ostavlennye, kogda obrabotchiki novostej unichtozhalis' pri zakrytii sistemy, i zakryvaet i vypolnyaet lyubye pakety, ostavlennye iz NNTP soedinenij, kotorye byli zaversheny pri zakrytii sistemy. newsrunning |to postoyanno nahoditsya v /usr/lib/news/bin/input, i mozhet ispol'zovat'sya, chtoby otklyuchit' nepaketirovanie vhodyashchih novostej, naprimer v techenie raboty. Vy mozhete vyklyuchit' nepaketirovanie vyzovom /usr/lib/news/bin/input/newsrunning off Ono vklyuchaetsya, ispol'zuya on vmesto off. 19. Opisanie NNTP 19.1 Vvedenie Iz-za razlichnogo setevogo ispol'zuemogo transporta, NNTP obespechivaet(predusmatrivaet) znachitel'no otlichnye podhody k obmenu novostej C News. NNTP zameshchaet " Setevoj Protokol peredachi Novostej '', i nespecificheskij paket programm. Razlichnye komandy pozvolyayut klienture otyskivat', posylat' i otpravlyat' po pochte stat'i. Razlichie mezhdu posylkoj i registraciej - to, chto poslednij mozhet vklyuchat' stat'i s nezavershennoj informaciej zagolovka. Poisk stat'i mozhet ispol'zovat'sya klienturoj peredachi novostej takzhe kak newsreaders. |to delaet NNTP prevoshodnym sredstvom dlya obespecheniya dostupa k novostyam dlya klientury v lokal'noj seti. NNTP takzhe obespechivaet aktivyj i passivnyj sposoby peredachi novostej, kotorye nazyvayutsya " pushing " i " pulling ". Vytalkivanie (pushing) - v osnovnom tozhe chto C News ihave/sendme protokol. Klient predlagaet stat'yu serveru cherez " IHAVE ", i server vozvrashchaet kod otveta, kotoryj ukazyvaet, imeet li on uzhe stat'yu, ili esli ona trebuetsya. Esli tak, klient posylaet stat'yu, zavershennuyu odinochnoj tochkoj v otdel'noj stroke. Vytalkivanie novostej imeet odin nedostatok - eto vyzyvaet tyazheluyu zagruzku v sisteme servera, tak kak ona dolzhna iskat' v baze dannyh - 333 - hronologij kazhduyu odinochnuyu stat'yu. Protivopolozhnaya metodika - peremeshchat'(pulling) novosti. Klient zaprashivaet spisok vseh dostupnyh statej iz gruppy, kotorye pribyli posle zadannoj daty. |tot zapros vypolnyaetsya komandoj NEWNEWS. Iz vozvrashchennogo spiska identichnosti soobshcheniya, klient vybiraet te stat'i, kotorye on eshche ne imeet, ispol'zuya komandu ARTICLE dlya kazhdoj iz nih po ocheredi. Problema s peremeshcheniem novostej sostoit v tom, chto trebuetsya plotnoe upravlenie serverom, kotoroe pozvolyaet klientu zaprashivat' gruppy i raspredeleniya. Naprimer, ono dolzhno udostoverit'sya, chto nikakoj konfidencial'nyj material iz lokal'nyh newsgroups ne poslan nesankcionirovannoj klienture. Imeetsya takzhe ryad komand udobstva dlya newsreaders, kotorye razreshayut im otyskivat' zagolovok stat'i i telo otdel'no, ili dazhe odinochnye stroki zagolovka iz promezhutka statej. |to dopuskaet Vam, hranit' vse novosti otnositel'no central'nogo host, so vsemi pol'zovatelyami set'i, ispol'zuya nntp-osnovannye klientskie programmy dlya chteniya i registracii. |to - al'ternativa k eksportu katalogov novostej cherez NFS, kotoryj opisan v glave 18 .. Polnaya problema NNTP sostoit v tom, chto ona pozvolyaet horosho osvedomlennomu specialistu vstavlyat' stat'i v potok novostej s lozhnoj specifikaciej otpravitelya. |to nazyvaetsya novostyami faking. Rasshirenie k NNTP pozvolyaet trebovat' ustanovleniya podlinnosti pol'zovatelya dlya nekotoryh komand. Imeetsya ryad dostupnyh NNTP paketov. Odin iz naibolee shiroko izvestnyh - NNTP daemon, takzhe izvestnyj kak realizaciya ssylki. Pervonachal'no, on napisan Stan Barber i Phil Lapsley, chtoby illyustrirovat' podrobnosti RFC 977. Samaya sovremennaya versiya - nntpd-1.5.11, opisana nizhe. Vy mozhete takzhe poluchit' ishodniki i kompilirovat' ee neposredstvenno. Nntpd paket sostoit iz servera i dvuh klientov dlya peremeshcheniya i vytalkivaniya novostej, sootvetstvenno, takzhe kak inews zameny. Oni zhivut v Bnews srede, no s nebol'shimi dopolneniyami, oni budut schastlivy s C news, takzhe. Odnako, esli Vy planiruete ispol'zovat' NNTP dlya bol'she chem predlozheniya newsreaders dostupa k vashemu serveru novostej, realizaciya ssylki ne est' dejstvitel'no opciya. My sledovatel'no obsudim tol'ko NNTP daemon soderzhashchijsya v nntpd pakete, i ne uchtem klientskie programmy. - 334 - 19.2 Ustanovka NNTP servera NNTP server nazyvaetsya nntpd, i mozhet kompilirovat'sya dvumya sposobami, v zavisimosti ot ozhidaemoj zagruzki na sisteme novostej. Ne imeetsya nikakih otkompilirovannyh versij, iz-za nekotoryh punkt- specificheskih znachenij po umolchaniyu, kotorye yavlyayutsya zhestko zakodirovannymi v vypolnimuyu programmu. Vsya konfiguraciya vypolnena cherez makrkomandu definines v common/conf.h. Nntpd mozhet byt' konfigurirovan ili kak avtonomnyj server, kotoryj zapuskaetsya pri nachal'noj zagruzke sistemy iz rc.inet2, ili kak daemon upravlyaemyj inetd. V poslednem sluchae Vy dolzhny imet' sleduyushchij vhod v /etc/inetd.conf: nntp stream tcp nowait news /usr/etc/in.nntpd nntpd Esli Vy konfiguriruete nntpd kak avtonomnyj, udostoverte', chto lyubaya takaya stroka v inetd.conf prokommentirovana. V lyubom sluchae, Vy dolzhny udostoverit'sya, chto imeetsya sleduyushchaya stroka v /etc/services: nntp 119/tcp readnews untp # Network News Transfer Protocol CHtoby vremenno sohranyat' lyubye vhodyashchie stat'i, i t.d, nntpd takzhe nuzhdaetsya v a kataloge .tmp v vashem spool novostej. Vy dolzhny sozdat' ego ispol'zuya # mkdir /var/spool/news/.tmp # chown news.news /var/spool/news/.tmp 19.3 Ogranichenie NNTP Dostupa Dostup k NNTP resursam upravlyaetsya fajlom nntp access v /usr/lib/news. Stroki v fajle opisyvayut prava dostupa, predostavlennye inostrannym glavnym |VM. Kazhdaya stroka imeet sleduyushchij format: site read|xfer|both|no post|no [!exceptgroups] Esli klient soedinyaetsya s NNTP portom, nntpd, pytaetsya poluchat' polnost'yu kvalificirovannoe imya oblasti iz adresa IP obratnym poiskom. - 335 - Hostname klienta i adres IP provereny protiv polya site kazhdogo vhoda v poryadke, v kotorom oni poyavlyayutsya v fajle. Sootvetstviya mogut byt' ili chastichnye ili tochnye. Esli vhod sootvetstvuet tochno, on primenyaetsya; esli sootvetstvie chastichno, on primenyaetsya, tol'ko esli ne imeetsya nikakogo drugogo sootvetstviya. Punkt mozhet byt' opredelen odnim iz sleduyushchih sposobov: hostname |to - polnost'yu kvalificirovannoe imya oblasti host. Esli ono sootvetstvuet kanonicheskiomu hostname klienta bukval'no, vhod primenyaetsya, i vse posleduyushchie vhody ignoriruyutsya. IP address |to - adres IP v tochechnoj zapisi chetverki. Esli adres IP klienta sootvetstvuet etomu, vhod primenyaetsya, a vse posleduyushchie vhody ignoriruyutsya. domain name |to - imya oblasti, zadannoe kak *.domain. Esli hostname klienta sootvetstvuet imeni oblasti, vhod sootvetstvuet. network name |to - imya seti kak opredeleno v /etc/networks. Esli setevoe chislo adresa IP klienta sootvetstvuet setevomu chislu, svyazannomu s setevym imenem, vhod sootvetstvuet. default Znachenie po umolchaniyu sootvetstvuet lyubomu klientu. Vhody s bolee obshchej specifikaciej punkta dolzhny byt' opredeleny ranee. Vtoroe i tret'e pole opisyvayut prava dostupa, predostavlennye klientu. Vtoroe detaliziruet prava, chtoby otyskat' novosti, peremeshchaya (read), i peredavat' novosti, vytalkivaya (xfer). Tret'e pole predostavlyaet klientu pravo otpravit' po pochte stat'i, to est' stat'i s nezavershennoj informaciej zagolovka, kotoraya zavershena programmnym obespecheniem novostej. Esli vtoroe pole soderzhit No, tret'e pole, ignoriruetsya. CHetvertoe pole neobyazatel'no, i soderzhit otdelennyj zapyatoj spisok grupp, s otklonennym dostupom dlya klienta. Primer nntp fajla dostupa pokazyvaetsya nizhe: # # by default, anyone may transfer news, but not read or post - 336 - default xfer no # # public.vbrew.com offers public access via modem, we allow # them to read and post to any but the local.* groups public.vbrew.com read post !local # # all other hosts at the brewery may read and post *.vbrew.com read post 19.4 NNTP Razreshenie Pri pechati propisnymi bukvami leksem(markerov) dostupa podobno xfer ili read v nntp access fajl, nntpd trebuet razresheniya ot klienta dlya sootvetstvennyh operacij. Naprimer, pri opredelenii prava Xfer ili XFER, nntpd ne budet dopuskat' klientskie stat'i k vashemu punktu, esli on ne peredaet razreshenie. Procedura razresheniya vypolnena posredstvom novoj komandy NNTP, imenovannoj AUTHINFO. Pri ispol'zovanii etoj komandy, klient peredaet imya pol'zovatelya i parol' k NNTP serveru. Nntpd proverit pravil'nost' ih, proveryaya ih protiv bazy dannyh /etc/passwd, i proverit, chto pol'zovatel' prinadlezhit gruppe nntp. Tekushchaya realizaciya NNTP razresheniya tol'ko eksperimental'na, i ne byla vypolnena ochen' perenosimoj. Rezul'tat - to, chto eto rabotaet tol'ko s bazami dannyh parolej s prostym stilem; tenevye paroli ne budut raspoznany. 19.5 Nntpd Vzaimodejstvie s C News Pri poluchenii stat'i, nntpd dolzhen pripisat' ee k podsisteme novostej. V zavisimosti ot togo, bylo li eto polucheno v rezul'tate komandy IHAVE ili POST, stat'ya vruchena rnews ili inews, sootvetstvenno. Vmesto togo, chtoby vyzyvat' rnews, Vy mozhete takzhe konfigurirovat' rnews (vo vremeni kompilyacii) paketirovat' vhodyashchie stat'i i peremeshchat' voznikayushchie v rezul'tate pakety v /var/spool/news/in.coming, gde oni ostayutsya dlya relaynews, chtoby podbirat' ih v sleduyushchej vypolnennoj ocheredi. CHtoby byt' sposobnym pravil'no vypolnit' ihave/sendme protokol, nntpd dolzhen byt' sposoben obratit'sya k fajlu hronologii. Vo vremeni kompilyacii, Vy sledovatel'no dolzhny udostoverit'sya, chto put' ustanovlen - 337 - pravil'no. Vy dolzhny takzhe udostoverit'sya, chto C news i nntpd dogovarivayutsya o formate vashego fajla hronologii. C news ispol'zuet dbm hesh-funkcii, chtoby obratit'sya k nemu; odnako, imeetsya nekotoroe chislo otlichnyh i nemnogo nesovmestimyh realizacij dbm biblioteki. Esli C news byl svyazan s razlichnoj dbm bibliotekoj chem Vy, imeete v vashem standarte libc, Vy dolzhny linkovat' nntpd s etoj bibliotekoj, takzhe. Tipichnyj priznak togo chto nntpd i C news ne soglashayutsya otnositel'no formata bazy dannyh - soobshcheniya ob oshibkah v fajle registracii sistemy, chto nntpd ne mozhet otkryt' ego pravil'no, ili dvojnye stat'i, poluchennye cherez NNTP. Horoshij test dolzhen vybrat' stat'yu iz vashej oblasti spool, sdelat' telnet k nntp portu, i predlagat', eto k nntpd kak pokazano v primere nizhe. Konechno, Vy dolzhny zamenit' na ID-soobshchenie stat'i, kotoruyu Vy hotite peredat' k nntpd snova. $ telnet localhost nntp Trying 127.0.0.1... Connected to loalhost Escape characters is '^]'. 201 vstout NNTP[auth] server version 1.5.11t (16 November 1991) ready at Sun Feb 6 16:02:32 1194 (no posting) IHAVE 435 Got it. QUIT |tot dialog pokazyvaet sootvetstvuyushchuyu reakciyu nntpd; soobshchenie "Got it" soobshchaet Vam, chto uzhe imeetsya eta stat'ya. Esli Vy poluchaete soobshchenie "335 Ok" vzamen, poisk v fajle hronologii, poterpel neudachu po nekotorym prichinam. Zavershite dialog pechataya Ctrl-D. Vy mozhete proveryat', chto shlo nepravil'no, proveryaya fajl registracii sistemy; nntpd registriruet vse vidy soobshchenij v syslog. Nesovmestimaya dbm biblioteka obychno proyavlyaetsya v soobshchenii, zhaluyushchemsya chto dbminit poterpel neudachu. 20. Konfiguraciya Newsreader Newsreaders prednaznacheny, chtoby predlozhit' funkcional'nye vozmozhnosti, kotorye pozvolyayut pol'zovatelyu obrashchat'sya k funkciyam sistemy novostej legko, podobno registracii statej, ili prosmatrivat' soderzhimoe newsgroup udobnym sposobom. Kachestvo etogo interfejsa predmet - 338 - beskonechnyh sporov. Imeetsya para newsreaders, kotorye byli preneseny na Linux. Nizhe ya budu opisyvat' bazisnuyu ustanovku dlya treh naibolee populyarnyh, a imenno tin, trn, i nn. Odin iz naibolee effektivnyh newsreaders eto $ find /var/spool/news -name '[0-9]*' -exec cat {} \; | more |to - sposob, kotorym Unix chitaet novosti. Bol'shaya chast' newsreaders, odnako, yavlyaetsya namnogo bolee slozhnoj. Oni obychno predlagayut polnoekrannyj interfejs s otdel'nymi urovnyami dlya otobrazheniya vseh grupp, na kotorye pol'zovatel' podpisalsya, dlya otobrazheniya kratkogo obzora vseh statej v odnoj gruppe. I dlya individual'nyh statej. V urovne newsgroup, bol'shinstvo newsreaders otobrazhaet spisok statej, pokazyvaya ih podchinennuyu stroku, i avtora. V bol'shih gruppah, eto nevozmozhno dlya pol'zovatelya, chtoby sledit' za stat'yami v otnoshenii drug druga, hotya vozmozhno identificirovat' otvety na bolee rannie stat'i. Otvet obychno povtoryaet pervonachal'nuyu temu stat'i, nachinayas' s " " Re: ''. Zdes', my ne budem detalizirovat' to, kak interfejsy pol'zovatelya sformirovany. Vse newsreaders, v nastoyashchee vremya dostupnye dlya Linux imeyut horoshuyu funkciyu spravki, tak chto Vy dolzhny issledovat' dal'she sami. V sleduyushchem, my budem imet' delo tol'ko s administrativnymi zadachami. Bol'shinstvo ih kasaetsya sozdaniya baz dannyh i uchet. 20.1 Konfiguraciya tin Naibolee universal'nyj newsreader - tin. On napisan Iain Lea i - svobodno postroen na bolee starom newsreader, imenovannom TASS. Na 486DX50, on beret priblizitel'no 30 sekund, chtoby najti 1000 statej pri chtenii neposredstvenno s diska. Nad NNTP k zagruzhennomu serveru novostej, eto bylo by chto-nibud' bolee 5 minut. Vy mozhete utochnit' eto, regulyarno modificiruya vash indeksnyj fajl s -u opciej, ili vyzyvaya tin s - U opciej. Obychno, tin formiruet damp baz dannyh v ishodnom kataloge pol'zovatelya nizhe .tin/index. |to mozhet odnako byt' dorogostoyashche v terminah resursov, tak chtoby Vy hoteli hranit' odinochnuyu kopiyu ih v central'nom raspolozhenii. |to mozhet byt' dostignuto, delaya tin setuid k novostyam, naprimer. Togda tin - 339 - budet hranit', vse podhodyashchie bazy dannyh nizhe /var/spool/news/.index. Dlya lyubogo fajla access ili Escape obolochki, eto pereustanovit effektivnyj universal'nyj identifikator k real'nomu universal'nomu identifikatoru pol'zovatelya, kotoryj vyzval eto. Versiya tin, vklyuchennogo v nekotorye raspredeleniya Linux ne imeet nikakoj kompiliruemoj podderzhki NNTP. Kogda vyzyvaetsya kak rtin ili s -r opciej, tin probuet soedinyat'sya s NNTP serverom, zadannym v /etc/nntpserver fajle ili v NNTPSERVER peremennoj sredy. Nntpserver fajl prosto soderzhit imya servera v odinochnoj stroke. 20.2 Trn Konfiguraciya Trn - preemnik bolee starogo newsreader, a imenno rn (kotoryj oznachaet chtenie novostej). " T " v imeni zameshchaet "svyaznyj". On napisan Wayne Davidson. V otlichie ot tin, trn ne imeet nikakogo sredstva dlya proizvodstva bazy dannyh poiska vo vremya vypolneniya. Vzamen, on ispol'zuet bazu podgotovlennuyu programmoj, nazyvaemoj mthreads, kotoraya dolzhna vyzvat'sya regulyarno iz cron, chtoby modificirovat' indeksnye fajly. Ne vypolnenie mthreads, odnako, ne oznachaet, chto Vy ne mozhete obrashchat'sya k novym stat'yam, eto tol'ko oznachaet chto Vy budete imet' vse eti " Novell vykupayut Linix!! " stat'i, rasseyannye v vashem menyu vybora statej, vmesto odinochnogo ekzemplyara (kotoryj Vy mozhete legko propustit'). CHtoby vklyuchit' otseivanie dlya opredelennyh newsgroups, mthreads vyzyvaetsya so spiskom newsgroups v komandnoj stroke. Spisok sdelan kak v fajle sys: mthreads comp,rec,!rec.games.go Dast vozmozhnost' otseivaniyu dlya vse comp i rec, krome rec.games.go (lyudi, kto igrayut, idut, ne nuzhdayutsya v prichudlivyh vyborkah). Posle etogo, Vy prosto vyzyvaete eto bez lyuboj opcii voobshche, chtoby zastavit' eto obrabotat' lyubye nedavno pribyvshie stat'i. Otseivanie vseh grupp, najdennyh v vashem fajle active mozhet byt' vklyucheno, vyzyvaya mthreads so spiskom gruppy. Esli vy poluchaete novosti v techenie nochi, Vy budet obychno vypolnyat' mthreads odin raz utrom, no Vy mozhete takzhe, delat' tak bolee chasto esli neobhodimo. Abonenty, kotorye imeyut ochen' tyazhelyj traffik, mogut hotet' - 340 - vypolnyat' mthreads v daemon rezhime. Kogda ona nachinaetsya pri nachal'noj zagruzke, ispol'zuya -d opciyu, ona pomeshchaet sebya v fon, i probuzhdaetsya kazhdye 10 minut, chtoby proverit', imeyutsya li lyubye nedavno pribytye stat'i, i proseivaet ih. CHtoby vypolnyat' mthreads v daemon rezhime, pomestite sleduyushchuyu stroku v vashu rc.news komandu: /usr/local/bin/rn/mthreads -deav -a opciya zastavit mthread avtomaticheski vklyuchit' otseivanie dlya novyh grupp, poskol'ku oni sozdany; -v daet vozmozhnost' podrobnym registracionnym soobshcheniyam k fajlu registracii mthreads, mt.log v kataloge, gde Vy imeete ustanovlennyj trn. Starye stat'i, kotorye bol'she ne dostupny, dolzhny byt' udaleny iz indeksnyh fajlov regulyarno. Po umolchaniyu, tol'ko stat'i, ch'e chislo yavlyaetsya nizhe metki ozhidaniya, budut udaleny. Stat'i vyshe etogo chisla, kotorye ustareli (potomu chto samaya staraya stat'ya byla naznachena na dlinnuyu datu istecheniya polem zagolovka Expires) mogut byt' udaleny, davaya mthreads -e opciyu, chtoby vynudit' " rasshirennuyu " chistku. Kogda mthreads vypolnyaetsya v daemon rezhime, -e opciya zastavit takoe rasshirennoe istechenie vypolnyat' odin raz v den', v polnoch'. 20.3 Konfiguraciya nn Nn napisal Kim F. Storm, on utverzhdaet, chto cel' newsreader ne sostoit v tom, chtoby chitat' novosti. Imya rasshifrovyvaetsya kak " Net Novostej '', i deviz - "Otsutstvie novostej - horoshaya novost'. A nn luchshe." CHtoby dostigat' etoj chestolyubivoj celi, nn postavlyaetsya s bol'shim vyborom instrumental'nyh sredstv soprovozhdeniya, kotorye ne tol'ko pozvolyayut provodit' otseivanie, no takzhe protyazhennye proverki na neprotivorechivosti etih baz dannyh, uchet, sbor statistiki ispol'zovaniya, i ogranichenij dostupa. Imeetsya takzhe programma administracii, nazyvaemaya nnadmin, kotoryj pozvolyaet Vam vypolnyat' eti zadachi v interaktivnom rezhime. Nn dispetcher bazy dannyh, nazyvaetsya nnmaster. On obychno vypolnyaetsya kak daemon, nachinaetsya iz komandy rc.inet2 ili rc.news. On vyzyvaetsya kak /usr/local/lib/nn/nnmaster -l -r -C - 341 - |to daet vozmozhnost' otseivaniyu dlya vseh newsgroups, predstavlennyh v vashem fajle active. Takzhe, Vy mozhete vyzyvat' nnmaster periodicheski iz cron, davaya emu spisok grupp. |tot spisok ochen' pohozh na spisok v fajle sys, za isklyucheniem togo, chto on ispol'zuet probely vmesto zapyatyh. Vmesto gruppy fake dlya vseh, pustoj argument "" dolzhen ispol'zovat'sya, chtoby oboznachit' vse gruppy. Tipovoj vyzov # /usr/local/lib/nn/nnmaster !rec.games.go rec comp Obratite vnimanie, chto poryadok znachitelen: krajnaya levaya specifikaciya gruppy, kotoraya sootvetstvuet, vsegda vyigryvaet. Takim obrazom, esli my pomestili !rec.games.go posle rec, vse stat'i iz etoj gruppy otseilis'. Nn predlagaet otdel'nye metody udalit' ustarevshie stat'i iz baz dannyh. Pervoe, chtoby modificirovat' bazu dannyh, razvertyvaya katalogi grupp novostej i otbrasyvaya vhody, ch'ya sootvetstvuyushchaya stat'ya yavlyaetsya bol'she ne dostupnoj. |to - zadannaya po umolchaniyu operaciya, poluchennaya vyzovom nnmaster s -E opciej. Priemlemo bystro, esli vy ne delaete eto cherez NNTP. Metod 2 vedet sebya tochno podobno zadannomu po umolchaniyu ustarevaniyu, vypolnennomu mthreads, v kotorom ona tol'ko udalyaet te vhody, kotorye otnosyatsya k stat'yam, ch'e chislo nizhe metki ozhidaniya v fajle active. |to mozhno dopuskat', ispol'zuya -e opciyu. V zaklyuchenie, tret'ya strategiya dolzhna otbrosit' vsyu bazu dannyh i pereoformit' vse stat'i. |to mozhet byt' vypolneno, davaya -E3 k nnmaster. Spisok grupp, kotorye ustareli detsya -F opciej v tom zhe samom rezhime kak vyshe. Odnako, esli Vy imeete nnmaster, vypolnyayushchijsya kak daemon, Vy dolzhny unichtozhit' ego (ispol'zuya -k) prezhde, chem mozhet proizojti ustarevanie, i perezapuskat' ego s pervonachal'nymi opciyami. Takim obrazom sootvetstvuyushchaya komanda, chtoby vypolnit' expire na vseh gruppah, ispol'zuyushchih metod 1: # nnmaster -kF "" # nnmaster -lrC Imeyutsya mnogo bol'she flagov, kotorye mogut ispol'zovat'sya, chtoby podstroit' povedenie nn. Esli Vy volnuetes' otnositel'no udaleniya plohih statej ili sbornikov statej, chitajte nnmaster stranicu rukovodstva. - 342 - Nnmaster polagaetsya na fajl, imenovannyj GROUPS, kotoryj raspolozhen v /usr/local/lib/nn. Esli on ne sushchestvuet pervonachal'no, on budet sozdan. Dlya kazhdoj newsgroup, on soderzhit stroku, kotoraya nachinaetsya s imeni gruppy, neobyazatel'no soprovozhdaemogo vremennoj metkoj, i flagami. Vy mozhete redaktirovat' eti flagi, chtoby dat' vozmozhnost' nekotoromu povedeniyu dlya rassmatrivaemoj gruppy, no Vy ne mozhete izmenyat' poryadok, v kotorom gruppy poyavlyayutsya. Flagi i ih effekty detalizirovany v nnmaster stranice rukovodstva, takzhe. APPENDIX A Null Kabel' Printera dlya PLIP CHtoby sdelat' Kabel' Printera dlya ispol'zovaniya s PLIP soedineniem, Vy nuzhdaetes' v dvuh soedinitelyah s 25 shtyr'kami (nazyvaemyh DB-25) i nekotorom kabele s 11 provodnikami. Kabel' dolzhen byt' dlinoj 15 metrov. Esli Vy rassmatrivaete konnektor, Vy dolzhny videt' kroshechnye chisla v osnove kazhdogo shtyr'ka. Dlya kabelya Printera, Vy dolzhny soedinit' sleduyushchie shtyr'ki oboih raz'emov drug s drugom: +-------------------------------+ |D0 2 15 ERROR | |D1 3 13 SLCT | |D2 4 12 PAPOUT | |D3 5 10 ACK | |D4 6 11 BUSY | |GROUND 25 25 GROUND | |ERROR 15 2 D0 | |SLCT 13 3 D1 | |PAPOUT 12 4 D2 | |ACK 10 5 D3 | |BUSY 11 6 D4 | +-------------------------------+ Vse ostayushchiesya shtyr'ki ostayutsya ne svyazannymi. Esli kabel' ekranirovan, ekran dolzhen byt' soedinen s DB-25 metallicheskoj obolochkoj na odnom konce. - 343 - APPENDIX B Primery smail Fajlov Konfiguracii |tot razdel pokazyvaet tipovye fajly konfiguracii dlya punkta UUCP v lokal'noj vychislitel'noj seti. Oni osnovany na tipovyh fajlah, vklyuchennyh v ishodnoe raspredelenie smail-3.1.28. Hotya ya delayu slabuyu popytku ob®yasnit', kak eti fajly rabotayut. Pervyj pokazannyj fajl - fajl programm marshrutizacii, kotoryj opisyvaet nabor programm marshrutizacii dlya smail. Kogda smail dolzhen poslat' soobshchenie k dannomu adresu, on vruchaet adres vsem programmam marshrutizacii po ocheredi, poka odna iz nih ne najdet sootvetstvie. Sootvetstvie zdes' oznachaet chto programma marshrutizacii nahodit host adresata v baze dannyh, but' eto fajl paths, /etc/hosts, ili lyuboj mehanizm marshrutizacii. Vhody v smail fajlah konfiguracii vsegda nachinayutsya s unikal'nogo imeni, identificiruyushchego programmu marshrutizacii, transport, ili rukovoditel'. Oni soprovozhdayutsya spiskom atributov, kotorye opredelyayut povedenie. |tot spisok sostoit iz nabora global'nyh atributov, tipa drajvera, i chastnyh atributov, kotorye ponyatny tol'ko etomu specificheskomu drajveru. Atributy otdelyayutsya zapyatymi, v to vremya kak nabory global'nyh i chastnyh atributov otdelyayutsya ot drug druga, ispol'zuya tochku s zapyatoj. V smail, Vy mozhete opredelyat' dve programmy marshrutizacii v fajle programm marshrutizacii, obe iz kotoryh ispol'zuyut pathalias drajver. |tot drajver ishchet hostnames v pathalias baze dannyh. On ozhidaet imya fajla v chastnom atribute: # # pathalias database for intra-domain routing domain paths: driver=pathalias, # look up host in a paths file transport=uux; # if matched, deliver over UUCP file=paths/domain, # file is /usr/lib/smail/paths/domain proto=lsearch, # file is unsorted (linear search) optional, # ignore if the file does not exist required=vbrew.com, # look up only *.vbrew.com hosts # - 344 - # pathalias database for routing to hosts outside our domain world paths: driver=pathalias, # look up host in a paths file transport=uux; # if matched, deliver over UUCP file=paths/world, # file is /usr/lib/smail/paths/world proto=bsearch, # file is sorted with sort(1) optional, # ignore if the file does not exist -required, # no required domains domain=uucp, # strip ending ".uucp" before searching Vtoroj atribut global'noj peremennoj, dannyj v kazhdom iz dvuh vhodov programm marshrutizacii vyshe opredelyaet transport, kotoryj dolzhen ispol'zovat'sya, kogda programma marshrutizacii obrabatyvaet adres. V nashem sluchae, soobshchenie budet peredano ispol'zuya uux transport. Transporty opredeleny v fajle transports, kotoryj ob®yasnsetsya nizhe. Vy mozhete podstraivat', kotorym transportom soobshchenie budet peredavat'sya, esli Vy opredelyaete mathod fajl vmesto atributa transports. Fajly metodov obespechivayut otobrazhenie celevogo hostnames na transports. My ne budem imet' delo s nimi zdes'. Sleduyushchij fajl programm marshrutizacii opredelyaet programmy marshrutizacii dlya lokal'noj vychislitel'noj seti, kotorye sdelayut zapros biblioteki reshayushchih ustrojstv. Na host Internet, odnako, Vy hoteli by ispol'zovat' programmu marshrutizacii, kotoraya obrabatyvaet zapisi MX. Vy dolzhny sledovatel'no razkommentirovat' al'ternativnuyu inet programmu marshrutizacii, kotoraya ispol'zuet vstroennyj drajver BIND smail. V srede, kotoraya smeshivaet UUCP i TCP/IP, Vy mozhete stalkivat'sya s problemoj, chto Vy imeete glavnye |VM v vashem fajle /etc/hosts, s kotorymi Vy imeete tol'ko sluchajnyj SLIP ili PPP kontakt. Obychno, Vy vse eshche hoteli by posylat' lyubuyu pochtu dlya nih po UUCP. CHtoby predotvrashchat' inet drajver glavnyh |VM ot sootvetstviya etih glavnyh |VM, Vy dolzhny pomestit' ih v fajl paths/force. |to - drugaya baza dannyh pathalias-stilej, ona proveryaetsya prezhde chem smail delaet zapros reshayushchego ustrojstva. # A sample /usr/lib/smail/routers file # # force - force UUCP delivery to certain hosts, even when # they are in our /etc/hosts - 345 - force: driver=pathalias, # look up host in a paths file transport=uux; # if matched, deliver over UUCP file=paths/force, # file is /usr/lib/smail/paths/force optional, # ignore if the file does not exist proto=lsearch, # file is unsorted (linear search) -required, # no required domains domain=uucp, # strip ending ".uucp" before searching # inet addrs - match domain literals containing literal # IP addresses, such as in janet@[191.72.2.1] inet addrs: driver=gethostbyaddr, # driver to match IP domain literals transport=smtp; # deliver using SMTP over TCP/IP fail if error, # fail if address is malformed check for local, # deliver directly if host is ourself # inet hosts - match hostnames with gethostbyname(3N) # Comment this out if you wish to use the BIND version instead. inet hosts: driver=gethostbyname, # match hosts with the library function transport=smtp; # use default SMTP -required, # no required domains -domain, # no defined domain suffixes -only local domain, # don't restrict to defined domains # inet hosts - alternate version using BIND to access the DNS #inet hosts: # driver=bind, # use built-in BIND driver # transport=smtp; # use TCP/IP SMTP for delivery # # defnames, # use standard domain searching # defer no connect, # try again if the nameserver is down # -local mx okay, # fail (don't pass through) an MX # # to the local host # # pathalias database for intra-domain routing domain paths: driver=pathalias, # look up host in a paths file transport=uux; # if matched, deliver over UUCP file=paths/domain, # file is /usr/lib/smail/paths/domain - 346 - proto=lsearch, # file is unsorted (linear search) optional, # ignore if the file does not exist required=vbrew.com, # look up only *.vbrew.com hosts # # pathalias database for routing to hosts outside our domain world paths: driver=pathalias, # look up host in a paths file transport=uux; # if matched, deliver over UUCP file=paths/world, # file is /usr/lib/smail/paths/world proto=bsearch, # file is sorted with sort(1) optional, # ignore if the file does not exist -required, # no required domains domain=uucp, # strip ending ".uucp" before searching # smart host - a partically specified smarthost director # If the smart path attribute is not defined in # /usr/lib/smail/config, this router is ignored. # The transport attribute is overridden by the global # smart transport variable smart host: driver=smarthost, # special-case driver transport=uux; # by default deliver over UUCP -path, # use smart path config file variable Obrabotka pochty dlya lokal'nyh adresov konfigurirovana v fajle directors. |to sdelano tochno tak zhe kak fajl programm marshrutizacii, so spiskom vhodov, kotorye opredelyayut rukovoditelya kazhdoj. Rukovoditeli ne posylayut soobshchenie, oni prosto vypolnyayut vsyu pereadresaciyu, kotoraya yavlyaetsya vozmozhnoj, naprimer cherez aliases, peresylku pochty, i t.p.. Pri postavke pochty k lokal'nomu adresu, tipa janet, smail peredaet imya usr vsem directors po ocheredi. Esli director sootvetstvuet, eto ili opredelyaet transport, kotorym soobshchenie dolzhno byt' peredano (naprimer, k mailbox fajlu pol'zovatelya), ili generiruet novyj adres (naprimer, posle special'noj ocenki). Iz-za vkl