Provided by: manpages-pl_20060617-1_all bug

NAZWA

       innd, inndstart - InterNetNews daemon

SKŁADNIA

       innd [ -a ] [ -c dni ] [ -C ] [ -d ] [ -f ] [ -H licznik ] [ -i licznik
       ] [ -Iadres_IP ] [ -l rozmiar ] [ -m tryb ] [ -n flaga ] [ -o licznik ]
       [  -pfd_des ] [ -Pport ] [ -r ] [ -s ] [ -t opnienie ] [ -T licznik ]
       [ -u ] [ -X sekundy ] [ -Z ]

       inndstart [ flagi ]

OPIS

       Innd, który  jest  demonem  news  (InterNetNews),  obsługuje  wszystkie
       nadchodzące  feedy.  Najpierw  wczytuje  do  pamięci  pliki  active(5),
       newsfeeds(5) i incoming.conf(5).  Potem otwiera port NNTP do odbierania
       artykułów   ze   zdalnych   stacji   (zobacz  opcję  ``-p'').  Jeśli  w
       include/config.h zdefiniowano HAVE_UNIX_DOMAIN_SOCKETS, to  do  odbioru
       artykułów  od  lokalnych  procesów,  takich  jak  nnrpd(8)  i  rnews(1)
       otwierane  jest  gniazdo  strumieniowe  dziedziny  Uniksowej,   a   dla
       ctlinnd(8)  odwierane  jest analogiczne gniazdo datagramowe.  Gdy makro
       to  nie  jest  zdefiniowane,  używane  są  łącza  nazwane.   Ctlinnd(8)
       wykorzystywany   jest  do  przekazywania  serwerowi  poleceń  wykonania
       określonych  akcji.   Otwiera  również  bazę  history(5)  i  dwa  pliki
       raportowe, zastępujące jego standardowe wyjście i wyjście błędu.

       Po  otwarciu  wszystkich plików i gniazd, innd oczekuje na połączenia i
       dane na swoich portach, używając do  tego  select(2)  i  nieblokującego
       I/O.    Jeśli   nie   ma   dostępnych  danych,  to  wypróżni  on  swoje
       wewnątrzrdzeniowe struktury danych. Domyślna liczba  sekund  opóźnienia
       przed wypróżnieniem jest ustawiana jako <DEFAULT_TIMEOUT w config.data>
       (zwykle 300) sekund.

       Jeśli innd otrzyma błąd ENOSPC (zobacz intro(2)) podczas  zapisu  pliku
       active,  pliku  article  lub  bazy historii, to wyśle do siebie komendę
       ``throttle''.  Stanie się tak również, jeśli otrzyma zbyt wiele  błędów
       wejścia-wyjścia podczas zapisu do jakiegoś pliku.

       Niektóre  parametry  ustawiane  w inn.conf(5) mogą być również podane w
       linii poleceń innd. W tym wypadku, opcje z inn.conf(5)  będą  nadpisane
       przez opcje linii poleceń.

OPCJE

       -a     Domyślnie,  jeśli host nie jest wymieniony w pliku incoming.conf
              to połączenie jest przekazywane do nnrpd.  Po użyciu  tej  flagi
              dowolny host może się podłączyć i przesyłać artykuły.

       -c     innd  odrzuca  stare artykuły. Zasadniczo zachowanie to może być
              sterowane przez bazę historii, lecz czasem stacja wyrzuca w sieć
              paczkę   bardzo  starych  artykułów.  Flaga  ``odrzuca  wszelkie
              artykuły, wysłane  dawniej  niż  21  dni  temu.  Wartość  zerowa
              powstrzymuje  ten  test.  Domyślną  wartością  jest 14 dni, lecz
              można to zmienić opcją ``artcutoff'' w inn.conf(5)

       -C     Jeśli użyta jest flaga  ``-C'',  to  innd  przyjmie  i  przesyła
              dalej, ale nie przetwarza wiadomości anulowania i powstrzymania.
              Jest  to  przeznaczone  dla  stacji,  w  których  nadużywane  są
              anulowania i które wybierają mechanizm z lepszą autoryzacją.

       -d -f  Innd  normalnie przechodzi w tło, ustawia standardowe wyjścia na
              pliki raportowe i odłącza się  od  terminala.  Po  użyciu  flagi
              ``-d''  serwer  tego  nie robi, a po użyciu flagi ``-f'', serwer
              pozostaje na pierwszym planie.

       -H -T -X
              Flagi  ``-H'',  ``-T''  i   ``-X''   sterują   liczbą   połączeń
              dozwolonych  na minutę. Ma to w założeniach działać jako ochrona
              serwera przed czytnikami, które wykonują  w  ciągu  minuty  zbyt
              wiele  połączeń  z serwerem. Zazwyczaj nie używa się tego, chyba
              że rzeczywiście pojawia się jakiś problem.  Tablica  używana  do
              tych  sprawdzeń  jest  ograniczona  do 128 wpisów i jest używana
              jako pierścień (ring).  Rozmiar  został  wybrany  do  ułatwienia
              obliczania  indeksu  i  do  upewnienia  się, że nie zabraknie ci
              miejsca.  Praktycznie wydaje  się  wątpliwe,  żebyś  wykorzystał
              nawet połowę tablicy naraz.

              Flaga  ``-H''  określa maksymalną liczbę połączeń pochodzących z
              danego hosta z serwerem podczas ``-X'' sekund. Domyślnie 2.

              Flaga ``-T'' ogranicza całkowitą liczbę  nadchodzących  połączeń
              innda  w  okresie  ``-X'' sekund. Maksymalną wartością jest 128.
              Domyślną 60.

              Flaga ``-X'' ustawia liczbę  sekund,  używaną  przez   ``-H''  i
              ``-T''. Wartość zerowa wyłącza sprawdzanie. Domyślnie jest 0.

       -i     Flaga  ``-i''  ogranicza  liczbę  nadchodzących  połączeń  NNTP.
              Wartość zerowa wyłącza to sprawdzenie. Domyślną wartością, jeśli
              w  inn.conf(5)  nie  podano  opcji  ``maxconnections''  jest 50.
              Wymieniona opcja jest zastępowana wartością tej opcji.

       -I     Opcja ta umożliwia wiązanie innda do podanego adresu  interfejsu
              IP.  Adres  IP  musi  być  w  postaci  kropkowej  czwórki  liczb
              (nnn.nnn.nnn.nnn).   Zobacz   też   opcję   ``bindaddress''    w
              inn.conf(5).

       -l     Flaga  ``-l''  ogranicza  rozmiar artykułu. Po użyciu tej flagi,
              wszystkie artykuły większe niż rozmiar  bajtów  będą  odrzucane.
              Domyślną  wartością  jest  1000000L  bajtów.  Sprawdzanie  można
              wyłączyć,  używając  wartości  zerowej.    Patrz   także   opcje
              ``maxartsize'' i ``localmaxartsize'' w inn.conf(5).

       -m     Flaga  ``-m''  służy  do  uruchamiania serwera w zatrzymanym lub
              stłumionym stanie (zobacz ctlinnd(8)).  Argument rozpoczyna  się
              pojedynczą  literą: g, p lub t, wskazujące odpowiednio na ``go''
              (startuj), ``pause'' (zatrzymaj) lub ``throttle'' (stłum).

       -n     Flaga ``-n''  określa  czy  pauzowanie  lub  stłumienie  serwera
              powinno  również  wyłączyć  przyszłe procesy czytnikowe. Wartość
              ``y'' powoduje, że czytniki zachowują się jak serwer, a  wartość
              ``n''   umożliwia   czytanie,  nawet  gdy  serwer  nie  pracuje.
              Domyślnie zezwala się na czytanie,  a  zmienić  można  to  opcją
              ``readerswhenstopped'' w inn.conf(5).

       -o     Flaga   ``-o''   służy  ograniczaniu  liczby  plików,  które  są
              utrzymywane otwarte dla wychodzących feedów plikowych.  Domyślną
              wartością   jest  liczba  dostępnych  deskryptorów  minus  część
              zarezerwowana do użytku wewnętrznego.

       -p     Po  użyciu  flagi  ``-p''  przyjmuje  się,  że  port  NNTP  jest
              otwierany  na  podanym deskryptorze. (Jeśli użyta jest ta flaga,
              to innd zakłada, że pracuje z  właściwymi  uprawnieniami  i  nie
              będzie  wołał  chown(2)  na  żadnych  z  tworzonych  plików  lub
              katalogów.)

       -P     Jeśli użyta jest flaga ``-P'', to podany port  jest  używany  do
              nasłuchiwania    połączeń.    innd   musi   mieć   wystarczające
              uprawnienia startowe by otworzyć podany port.

       -r     Jeśli użyta jest flaga ``-r'', serwer przenumeruje  plik  active
              zupełnie tak, jak po wysłaniu komendy ``renumber''.

       -s     Jeśli  użyta  jest  flaga  ``-s'', to innd nic nie będzie robić,
              lecz tylko sprawdzi składnię pliku newsfeeds.   Jeśli  będą  tam
              błędy,  to  zgłosi  kod  błędu; rzeczywiste błędy będą natomiast
              zgłoszone w syslog(3).

       -t     Zmienia czas opóźnienia przed wypróżnieniem do timeout sekund.

       -u     Raporty są normalnie buforowane; flaga ta wyłącza to zachowanie.

       Inndstart jest małym programem typu front-end, który otwiera port NNTP,
       ustawia uid i gid na opiekuna news, a następnie uruchamia demona innd z
       flagą  ``-p''  i  minimalnym  bezpiecznym  środowiskiem.   Jest to mały
       front-end dla stacji, która nie chce uruchamiać  innd  z  uprawnieniami
       roota.

KOMUNIKATY STERUJĄCE

       Artykuły przychodzące, mające nagłówek Control są nazywane komunikatami
       sterujcymi.  Poza  komunikatem  anulowania,  są  one  zaimplementowane
       przez  zewnętrzne  programy  w  katalogu <pathcontrol w inn.conf> o ile
       <usecontrolchan w inn.conf> jest ustawione  na  ``false''.  (Komunikaty
       anulowania   (cancel)   odświeżają   bazę   historii,  więc  muszą  być
       obsługiwane   wewnętrznie;   koszt   synchronizowania,   blokowania   i
       odblokowywania   byłby   zbyt   wysoki   przy   odbiorze  wielu  takich
       komunikatów.)

       Gdy  nadchodzi  komunikat  sterujący,  pierwsze   słowo   tekstu   jest
       konwertowane  na  małe  litery  i jest używane jako nazwa uruchamianego
       programu. Jeśli program nie istnieje, wywoływany jest domyślny program,
       określony przez <pathcontrol w inn.conf>/default.

       Wszystkie  programy  sterujące  są  wywoływane  z czterema parametrami.
       Pierwszym jest adres nadawcy komunikatu; jest to pobierane  z  nagłówka
       Sender.  Jeśli nagłówek ten jest pusty, to dane są pobierane z nagłówka
       From. Następnym parametrem  jest  adres  zwrotny  replik;  pobierany  z
       nagłówka Reply-To.  Jeśli nagłówek ten jest pusty, użyty zostanie adres
       nadawcy.  Trzecim parametrem będzie nazwa pliku, w którym znajduje  się
       artykuł  względem  katalogu  składowego news.  Czwartym parametrem jest
       host, który wysłał artykuł. Jest to odczytywane z linii Path.

       Jeśli <usecontrolchan w inn.conf> jest ustawione na ``true'', to  żaden
       komunikat  sterujący  nie będzie przetwarzany przez program zewnętrzny,
       forkowany przez innda. Zamiast tego, będzie przetwarzany  przez  skrypt
       controlchan,  który jest wywoływany jako program kanałowy innda. Musisz
       do używania tego skryptu skonfigurować newsfeeds(5).   Przetwarzanie  z
       użyciem  controlchan  może  zredukować nadmierne obciążenie, jeśli zbyt
       wiele komunikatów sterujących pojawia się naraz.

       Dystrybucja  komunikatu  sterującego  jest  odmienna   od   dystrybucji
       standardowych artykułów.

       Komunikaty  sterujące  normalnie  wpadają do grupy dyskusyjnej control.
       Mogą one być zapisywane  w  podgrupach,  lecz  w  oparciu  o  polecenie
       komunikatu  sterującego.   Na  przykład  komunikat  newgroup  może  być
       zapisany  w  grupie  control.newgroup  lub  w  ogólnym  control,  jeśli
       specjalizowana podgrupa nie istnieje.

       Stacje   mogą  jawnie  udostępniać  grupę  ``control''  w  ich  listach
       zapisowych, lecz  zwykle  lepiej  jest  ją  wyłączyć.  Jeśli  komunikat
       sterujący  jest  wysyłany  na  grupę,  której nazwa kończy się czterema
       znakami ``.ctl'', to przyrostek jest obcinany, a to co pozostanie  jest
       używane  jako nazwa grupy.  Na przykład komunikat anulujący, wysłany na
       ``news.admin.ctl'' zostanie przesłany do wszystkich  stacji  zapisanych
       na  grupy  ``control''  lub  ``news.admin''.   Wiadomości  newgroup lub
       rmgroup wymagają dodatkowego specjalnego traktowania.  Jeżeli wiadomość
       jest  zaakceptowana  i została wysłana do tworzonej lub usuwanej grupy,
       to ta wiadomość zostanie  przesłana  do  wszystkich  serwerów,  których
       wzorce  subskrypcji grup pozwoliłyby na odebranie wiadomości wysyłanych
       do tej grupy.

       Jeśli <mergetogroups w inn.conf> jest ustawione  na  ``true'',  to  gdy
       artykuł  jest  wysyłany  na grupę, która rozpoczyna się trzema literami
       ``to.'', to  zostanie  potraktowany  specjalnie,  jeśli  grupa  ta  nie
       istnieje w pliku active: artukuł jest składowany do grupy ``to'' i jest
       wysyłany do pierwszej stacji, nazwanej  po  przedrostku.  Na  przykład,
       wysyłanie  do  ``to.uunet''  zostanie  złożone do ``to'' i przesłane do
       stacji ``uunet''.  file:

RÓŻNICE PROTOKOŁU

       Innd implementuje komendy NNTP zdefiniowane w RFC 977  z  następującymi
       odstępstwami:

       1.     Za  ``list''  może  występować  dodatkowo  argument  ``active'',
              ``active.times'', ``newsgroups'' lub ``subscription''.  Jest  to
              popularne  rozszerzenie,  lecz  nie  w pełni obsługiwane; zobacz
              nnrpd(8).

       2.     Zaimplementowane są komendy ``authinfo  user''  oraz  ``authinfo
              pass''.    Zobacz   draft-barber-nntp-imp-07.txt   dla  dalszych
              szczegółów.

       3.     Udostępniona jest nowa komenda,  ``mode  reader''.   Komenda  ta
              powoduje,  że  serwer  przekazuje  połączenie do nnrpd.  Komenda
              ``mode query'' przeznaczona jest  dla  przyszłych  zastosowań  i
              obecnie jest traktowana tak samo.

       4.     Udostępnione   są  komendy  wspierające  transfer  strumieniowy:
              ``check messageid'' i ``takethis messageid''.

       5.     Udostępniona jest komenda transferu wsadowego  ``xbatch  liczba-
              bajtw''.  Komenda  ta odczyta liczb-bajtw bajtów i zapisze je
              dla  dalszego  przetwarzania  przez   rnews(1)   (który   należy
              uruchomić    oddzielnie).    Obejrzyj   programy   innxbatch   i
              sendxbatches.sh.

       6.     Pozostałymi zaimplementowanymi komendami są ``head'' ,  ``help''
              , ``ihave'' , ``quit'' oraz ``stat''.

MODYFIKACJE NAGŁÓWKÓW

       Innd  modyfikuje  tak mało nagłówków, jak tylko się da, lecz mógłby być
       lepszy.

       Oto lista nagłówków, które jeśli istnieją, są usuwane:
              Date-Received
              Posted
              Posting-Version
              Received
              Relay-Version
       Puste nagłówki oraz nagłówki składające się z białych spacji również są
       opuszczane.

       Do nagłówka Path doklejana jest nazwa lokalnej stacji (określanej przez
       wartość ``pathhost'' w inn.conf(5)) i wyrzyknik (jeśli nazwa  pierwszej
       stacji nagłówka różni się od lokalnej).

       Nagłówek Xref jest usuwany i tworzony jest nowy.

       W przypadku nieobecności, nagłówek Lines jest dodawany.

       Innd  nie  przepisuje nieprawidłowych nagłówków. Na przykład nie będzie
       zmieniać nieprawidłowego nagłówka Lines, ale odrzuci artykuł.

RAPORTOWANIE

       Innd raportuje wszystkie nadchodzące  artykuły  do  pliku  raportowego.
       Jest  to  plik  tekstowy o zmiennej ilości rozdzielanych spacjami pól o
       jednym z następujących formatów:
              mon dd hh:mm:ss.mmm + feed <Message-ID> stacja...
              mon dd hh:mm:ss.mmm j feed <Message-ID> stacja...
              mon dd hh:mm:ss.mmm c feed <Message-ID> stacja...
              mon dd hh:mm:ss.mmm - feed <Message-ID> powód...
              mon dd hh:mm:ss.mmm ? feed <Message-ID> powód...

       Po polu Message-ID może  być  również  pole  nazwy  hosta  i  rozmiaru,
       zależnie od opcji ``nntplinklog'' i ``logsize'' z inn.conf(5).

       Pierwsze   trzy   pola   są   polami  daty  i  czasu  w  rozdzielczości
       milisekundowej.   Piąte  pole  jest  stacją,  która   wysłała   artykuł
       (odczytywane  z  nagłówka  Path).   Szóste  pole  jest  identyfikatorem
       artykułu; jeśli informacja jest niedostępna, pojawi się w  jej  miejscu
       pytajnik.

       Czwarte  pole  określa  czy artykuł został przyjęty czy nie. Jeśli jest
       tam znak plus, to został przyjęty. Jeśli  ``j'',  to  został  przyjęty,
       lecz wszystkie grupy mają w swoich rekordach active ``j'', więc artykuł
       został złożony do grupy ``junk''.  Jeśli w  polu  pojawiła  się  litera
       ``c'',  to  przed pojawieniem się oryginalnego artykułu odebrany został
       komunikat anulujący.  We wszystkich  tych  przypadkach  artykuł  został
       przyjęty  i  pole  ``stacja...''   zawiera  rozdzieloną  spacjami listę
       stacji, do których artykuł jest przesyłany.

       Jeśli czwarte pole zawiera znak minusa,  o  artykuł  został  odrzucony.
       Powodami odrzucenia mogą być:
              "%s" header too long (za długi nagłówek)
              "%s" wants to cancel <%s> by "%s" ("%s" chce anulować <%c> poprzez "%s")
              Article exceeds local limit of %s bytes (Artykuł przekracza lokalny
                                                       limit %s bajtów)
              Article posted in the future -- "%s" (Artykuł wysłany w przyszłości -- "%s")
              Bad "%s" header (Zły nagłówek "%s")
              Can't write history (Nie mogę zapisać historii)
              Duplicate (Duplikat)
              Duplicate "%s" header (Zduplikowany nagłówek "%s")
              EOF in headers (EOF w nagłówkach)
              Linecount %s != %s +- %s (Liczba linii %s != %s +- %s)
              Missing %s header (Brak nagłówka %s)
              No body (Brak ciała)
              No colon-space in "%s" header (Brak dwukropka-spacji w nagłówku "%s")
              No space (Brak spacji (albo miejsca???))
              Space before colon in "%s" header (Spacja przed dwukropkiem w nagłówku "%s")
              Too old -- "%s" (Za stare -- "%s")
              Unapproved for "%s" (Niezatwierdzone dla "%s")
              Unwanted newsgroup "%s" (Niechciana grupa dyskusyjna "%s")
              Unwanted distribution "%s" (Niechciana dystrybucja "%s")
              Whitespace in "Newsgroups" header -- "%s" (Biała spacja w nagłówku
                                                         "Newsgroups" -- "%s")
       Gdzie ``%s'' jest podmieniane przez konretniejsze informacje.

       Jeżeli  w  czwartym  polu  wystąpi  znak  ``?'',  oznzcza to, że atykuł
       zawiera dziwne łańcuchy znaków, tj. CR bez LF lub LF bez CR.  Te  znaki
       są  używane  razem  ``CRLF'',  co  oznacza  koniec  linii. Obecnie taka
       informacja w logu oznacza dziwność tego artykułu, ale  innd  nigdy  nie
       odrzuca artykułu z tego powodu.

       Zauważ,  że  jeśli  artykuł jest przyjęty i <wanttrash w inn.conf> jest
       ustawione na ``yes'' i żadna z grup nie jest odpowiednia,  to  zostanie
       zraportowany w dwóch liniach: w linii ``j'' i ``-''.

       Innd  zgłasza  też  obszerne  raporty  poprzez sysloga.  Pierwsze słowo
       komunikatu raportowego będzie: nazwą stacji, jeśli wpis jest  dla  niej
       specyficzny  (np.  komunikat  ``connected'');  słowem ``SERVER'', jeśli
       komunikat jest związany z serwerem, np. gdy pojawi się błąd odczytu.

       Jeśli drugim słowem są cztery litery ``cant'', to zgłaszany jest  błąd.
       W tym przypadku następne dwa słowa ogólnie nazywają wywołanie systemowe
       lub funkcję biblioteczną, która się nie  powiodła  oraz  obiekt,  wokół
       którego  wykonywane  były  działania.  Reszta  linii może zawierać inne
       informacje.

       W innych przypadkach, drugie słowa  określa  rodzaj  zmiany,  a  reszta
       linii   uściśla  tę  informację.  Słowo  ``internal''  ogólnie  oznacza
       wewnętrzny błąd logiczny.

SYGNAŁY

       Innd przechwytuje sygnały SIGTERM i SIGDANGER i wyłącza  się  po  nich.
       Jeśli  użyta  jest flaga ``-d'', przechwytywany będzie również SIGINT i
       będzie działał analogicznie.

       Innd  przechwytuje  sygnał  SIGUSR1   i   odtwarza   kanał   sterujący,
       wykorzystywany normalnie przez ctlinnd(8).

HISTORIA

       Napisane przez Richa $alza <rsalz@uunet.uu.net> dla InterNetNews.  Jest
       to rewizja 1.24.2.4, z dnia 2000/08/20.

ZOBACZ TAKŻE

       active(5),   ctlinnd(8),    dbz(3),    history(5),    incoming.conf(5),
       inn.conf(5), newsfeeds(5), nnrpd(8), rnews(1), syslog(8).

                                                                       INND(8)