WartoϾ both zawiera oba poprzednie, a no
oznacza ca³kowity zakaz dostêpu. Trzecie pole daje klientowi prawo do wysy³ania
artyku³ów, czyli do ich umieszczania bez pe³nej informacji w nag³ówku, która jest
uzupe³niana przez oprogramowanie do obs³ugi grup. Je¿eli drugie pole zawiera no,
trzecie pole jest ignorowane.
Czwarte pole jest opcjonalne i zawiera oddzielan¹ przecinkami listê grup, do któ-
rych klient nie ma dostêpu.
Oto przyk³adowy plik nntp_access:
## domyœlnie ka¿dy mo¿e przesy³aæ artyku³y, ale nie ka¿dy mo¿e
# je czytaæ lub pisaæ nowe
default
xfer
no
## public.vbrew.com oferuje dostêp przez modem. Pozwalamy na
# czytanie i wysy³anie artyku³ów do wszystkich grup poza
# local.*
public.vbrew.com
read
post
!local
## wszystkie pozosta³e hosty w browarze mog¹ czytaæ i wysy³aæ
*.vbrew.com
read
post
Autoryzacja NNTP
Demon nntpd oferuje prosty schemat autoryzacji. Je¿eli jakieœ leksemy opisuj¹ce do-
stêp w pliku nntp_access napiszesz du¿ymi literami, nntpd za¿¹da autoryzacji klien-
ta dla danej operacji. Na przyk³ad, gdybyœ zapisa³ prawa dostêpu jako Xfer XFER
(zamiast xfer), nntpd nie pozwoli³by klientowi przes³aæ artyku³ów bez autoryzacji.
Procedura autoryzacji jest zaimplementowana przez nowe polecenie NNTP: AU-
THINFO. W tym poleceniu klient przesy³a nazwê u¿ytkownika i has³o do serwera
Wspó³praca nntpd z C News
397
NNTP. Demon nntpd sprawdza je z plikiem /etc/passwd, aby dowiedzieæ siê, czy
u¿ytkownik nale¿y do grupy nntp.
Aktualna implementacja autoryzacji NNTP ma charakter eksperymentalny i dlatego
nie zosta³a zaimplementowana jako przenoœna. Dzia³a wiêc tylko z baz¹ czystych
hase³ – has³a shadow nie s¹ rozpoznawane. Je¿eli kompilujesz Ÿród³a i masz zainsta-
lowany pakiet PAM, bardzo ³atwo zmieniæ procedurê sprawdzania hase³.
Wspó³praca nntpd z C News
Gdy nntpd odbierze artyku³, musi go dostarczyæ do podsystemu grup. W zale¿noœci
od tego, czy zosta³ on odebrany poleceniem IHAVE czy POST, jest przekazywany od-
powiednio do rnews lub inews. Zamiast wywo³ywaæ rnews, mo¿esz tak¿e skonfiguro-
waæ (w czasie kompilacji) wywo³ywanie przetwarzania wsadowego przychodz¹cych
artyku³ów i przenosiæ uzyskane wsady do katalogu /var/spool/news/in.coming, gdzie
oczekuj¹ na pobranie przez relaynews przy nastêpnym przebiegu kolejki.
nntpd musi mieæ dostêp do pliku history, by móc poprawnie obs³ugiwaæ protokó³
ihave/sendme. W czasie kompilacji musisz podaæ dok³adn¹ œcie¿kê do tego pliku. Je-
¿eli u¿ywasz C News, sprawdŸ, czy C News i nntpd s¹ zgodne co do formatu pliku
historii. C News przy dostêpie u¿ywa funkcji mieszaj¹cej dbm. Jednak istnieje szereg
ró¿nych, niezbyt kompatybilnych implementacji biblioteki dbm. Je¿eli C News zosta³
skonsolidowany z jak¹œ inn¹ wersj¹ biblioteki dbm, która nie jest zgodna z wersj¹
znajduj¹ca siê w twojej standardowej bibliotece libc, musisz skonsolidowaæ nntpd
z t¹ sam¹ bibliotek¹.
Niezgodnoœci pomiêdzy nntpd i C News s¹ czasem powodem generowania komuni-
katów o b³êdach w logu systemowym, mówi¹cych o tym, ¿e nntpd nie mo¿e go po-
prawnie otworzyæ. Mo¿e siê te¿ zdarzyæ, ¿e zobaczysz podwójne artyku³y odebrane
przez NNTP. Dobrym testem na b³êdne funkcjonowanie przesy³ania grup jest po-
branie artyku³u z obszaru buforowego, wykonanie telnet na port nntp i zaoferowa-
nie go nntpd zgodnie z tym, co pokazano w przyk³adzie poni¿ej. Oczywiœcie musisz
zast¹piæ msg@id ID wiadomoœci, któr¹ chcesz przekazaæ do nntpd:
$ telnet localhost nntp
Trying 127.0.0.1...
Connected to localhost
Escape characeters 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 msg@id
435 Got it.
QUIT
Ta konwersacja pokazuje poprawn¹ reakcjê nntpd. Komunikat Got It mówi, ¿e ar-



 

 

 

 

 

 

 

 

 

 

 

 

   
 
  szczegó³owe prawa niezbêdne do pobrania artyku³u przez œci¹gniêcie (read) i jego wrzucenie przez wciœniêcie (xfer)...
Pomodliłem się do każdego boga jaki istniał bym był w wstanie wkurzyć tę kobietę do granic możliwości.