  dokumentacja bftpd jezyk polski]
  napisana przez Max-Wilhelm Bruker <brukie@gmx.net>


  Ten dokument stanowi dokumentacje serwera bftpd.
  ______________________________________________________________________

  Table of Contents


  1. Wprowadzenie
  2. Instalacja
     2.1 Kompilacja
     2.2 Uruchamianie serwera

  3. Konfiguracja
     3.1 Zarzadzanie uzytkownikami
     3.2 Plik konfiguracji (/etc/bftp.conf)
        3.2.1 Sekcja globalna
        3.2.2 Sekcja uzytkownikow
        3.2.3 Sekcja grup uzytkownikow
        3.2.4 Sekcja katalogow

  4. FAQ
     4.1 Problemy z kompilacja
        4.1.1 Nie moge skompilowac bftpd
        4.1.2 Wystepuja dziwne ostrzezenia
        4.1.3 Make mowi ze nie moge uzywac wtmp
     4.2 Problemy przy uruchamianiu
        4.2.1 Otrzymuje komunikat "Could not get peer IP address."
        4.2.2 Dostaje blad "Bind failed: Address already in use."
     4.3 Problemy podczas sesji FTP
        4.3.1 Mam blad podobny do "500 Unknown command: 'foo'"
        4.3.2 Sesja sie konczy bledem 421
     4.4 Rozne
        4.4.1 Jak dziala kompresja w locie?
        4.4.2 Moje opcje dla polaczen anonymous nie dzialaja
        4.4.3 Dlaczego dokumentacja jest tak uboga?

  5. Credits
     5.1 Testowanie na roznych platformach
     5.2 Pomysly, uwagi& fragmenty kodu
     5.3 Pisanie dokumentacji
     5.4 Inne


  ______________________________________________________________________

  11..  WWpprroowwaaddzzeenniiee

  bfptd jest serwerem FTP dla Linuxa, BSD/OS, FreeBSD, Solarisa, DG-UXa
  oraz Tru64 (nie wiem czy dziala on na innych systemach, jesli
  probowales, napisz do mnie). Uruchamiany moze byc poprzez inetd badz w
  trybie standalone (demon).

  bftpd stara sie byc bardzo elastycznym przy zachowaniu malego rozmiaru
  oraz swojej szybkosci. Mozesz wprowadzac wartosci domyslne dla kazdej
  opcji w konfiguracji a nastepnie nadpisywac je poprzez lokalne
  parametry.

  Do zalet bftpd zaliczyc mozna:

  +o  Prosta konfiguracje

  +o  Predkosc

  +o  Obsluge wiekszosci komend FTP RFC

  +o  Kompresje w locie do archiwow .tar.gz

  +o  Bezpieczenstwo poprzez proste wprowadzenie chroota

  +o  Brak koniecznosci udostepniania basha oraz innych komend w
     srodowisku chroot

  +o  Logowanie do wtmp oraz do pliku badz demona syslogd

  +o  Obsluge PAM oraz hasel passwd/shadow

  +o  Obsluge komend SITE CHOWN/CHMOD


  22..  IInnssttaallaaccjjaa

  22..11..  KKoommppiillaaccjjaa

  Najpierw uruchom nastepujace polecenia (zamieniajac x.x.x na wersje,
  ktora instalujesz):


       tar xzf bftpd-x.x.x.tar.gz
       cd bftpd-x.x.x
       ./configure
       make
       make install [wymaga roota]



  Wiedz, ze jesli upgradujesz bftpd ze starszej wersji, musisz recznie
  skopiowac plik bftpd.conf do katalogu /etc, poniewaz polecenie 'make
  install' nie nadpisuje pliku konfiguracyjnego.

  Uwaga: Jesli chcesz korzystac z opcji kompresji w locie do .tar.gz,
  musisz sciagnac kody zrodlowe gzipa oraz paxa i rozpakowac je do
  katalogu zrodlowego bftpd. Nastepnie, zamiast uruchomic "./configure",
  wykonaj "./configure --enable-pax=katalog-z-paxem --enable-
  gzip=katalog-z-gzipem".

  22..22..  UUrruucchhaammiiaanniiee sseerrwweerraa

  Do wyboru masz uruchamianie bftpd poprzez inetd oraz w trybie
  standalone (demon).

      JJeessllii cchhcceesszz kkoorrzzyyssttaacc zz iinneettdd::
        Dodaj nastepujacy wpis do /etc/inetd.conf:

          ftp stream tcp nowait root /usr/sbin/bftpd bftpd



     Wyslij inetdowi sygnal HUP lub zrestartuj system. Od tego momentu
     bftpd powinien pracowac.

      JJeessllii cchhcceesszz uurruucchhoommiicc bbffttppdd jjaakkoo ddeemmoonnaa ((ssttaannddaalloonnee))::
        Kaz systemowi uruchamiac:



     /usr/sbin/bftpd -d



     przy  starcie.

  33..  KKoonnffiigguurraaccjjaa

  33..11..  ZZaarrzzaaddzzaanniiee uuzzyyttkkoowwnniikkaammii

  Mozesz obslugiwac konta uzytkownikow w bardzo prosty sposob, edytujac
  plik /etc/passwd oraz, jesli Twoj system to obsluguje, /etc/shadow.
  Kazdy uzytkownik wystepujacy w /etc/passwd moze sie polaczyc z
  serwerem jesli poda haslo i spelni wymagania konfiguracji serwera
  bftpd. Mozna rowniez zalozyc konto anonymous, ustawiajac zmienna
  ANONYMOUS_USER na yes. bftpd obsluguje rowniez PAM.

  33..22..  PPlliikk kkoonnffiigguurraaccjjii ((//eettcc//bbffttpp..ccoonnff))

  33..22..11..  SSeekkccjjaa gglloobbaallnnaa

  W tej sekcji mozesz nadawac wartosci opcjom konfiguracji. Skladnia
  jest nastepujaca:


       global {
         nazwa1=wartosc1
         nazwa2=wartosc2
       }



  33..22..22..  SSeekkccjjaa uuzzyyttkkoowwnniikkooww

  W konfiguracji wystepuje rowniez sekcja uzytkownikow, w ktorej mozesz
  nadpisywac wartosci globalne dla poszczegolnych uzytkownikow.
  Przyklad:


       global {
         nazwa1=wartosc1
         nazwa2=wartosc2
       }
       user foo {
         nazwa1=wartosc3
       }



  Jesli uzytkownik foo sie zaloguje, to nazwa pierwsza bedzie miala
  wartosc3. Jesli zalogowany jest inny uzytkownik, nazwa1 ma warosc1,
  natomiast nazwa2 ma zawsze wartosc2.


  33..22..33..  SSeekkccjjaa ggrruupp uuzzyyttkkoowwnniikkooww

  Mozesz takze definiowac konfiguracje grupom uzytkownikow - podobnie
  jak dla jednego uzytkownika, tylko mozesz przydzielic ich kilku pod
  postacia grupy. Mozesz rowniez umieszczac w konfiguracji grupy
  systemowe dodajac do ich nazwy znak @. Przyklad:



  group foo,bar,@baz {
    nazwa1=wartosc1
  }



  Te opcje oddzialuja na uzytkownikow foo i bar oraz na kazdego z grupy
  systemowej baz.

  33..22..44..  SSeekkccjjaa kkaattaallooggooww

  Mozesz ustalac opcje, ktore beda wazne tylko dla uzytkownikow
  znajdujacych sie w danym katalogu, badz jego podkatalogach. Wez pod
  uwage, ze musisz umiescic te struktury w opcjach globalnych,
  uzytkownikow oraz grup. W ten sposob mozesz takze nadpisywac
  specyficzne ustawienia katalogu dla danych uzytkownikow. Przykladowo:


       global {
         nazwa=wartosc1
         directory /foo {
           nazwa1=wartosc2
         }
       }
       user bar {
         directory /foo {
           nazwa1=wartosc3
         }
       }



  Tutaj, nazwa1 bedzie miala warosc3 jesli uzytkownik bar bedzie w kata-
  logu /foo. Natomiast wartosc2 przybierze jesli inny uzytkownik zna-
  jdzie sie w katalogu /foo. Kazdy inny przypadek spowoduje nadanie
  nazwie1 wartosci1.

  Wyjasnienie tych opcji znajdziesz w pliku konfiguracyjnym bftpd (jesli
  nie upgradowales bftpd, plik zostal juz skopiowany do /etc).
  Zmodyfikuj oczywiscie plik do twoich potrzeb. Jednak domyslna
  konfiguracja tez powinna byc w porzadku.

  44..  FFAAQQ

  44..11..  PPrroobblleemmyy zz kkoommppiillaaccjjaa

  44..11..11..  NNiiee mmooggee sskkoommppiilloowwaacc bbffttppdd

  Daj mi znac. Powiedz na jakim systemie i architekturze go
  kompilowales, przeslij tez wyjscie calego procesu kompilacji
  (configure i make). Nie dostaje ton poczty, wiec postaram sie
  rozwiazac Twoj problem. Jesli natomiast nie odpowiem, prawie
  zapomnialem o Twoim mailu, wiec go ponow :)

  44..11..22..  WWyysstteeppuujjaa ddzziiwwnnee oossttrrzzeezzeenniiaa

  To jest calkiem mozliwe na platformach, na ktorych nie testowalem
  bftpd. Nawet jesli bftpd skompiluje sie prawidlowo i dziala bez
  zarzutu, prosze, przeslij mi informacje na ten temat, gdyz kompilator
  moze powodowac niezauwazalne na pierwszy rzut oka problemy.



  44..11..33..  MMaakkee mmoowwii zzee nniiee mmooggee uuzzyywwaacc wwttmmpp

  Prawdopodobnie uzywasz Solarisa. Poniewaz nie mam dostepu do takiej
  maszyny, nigdy nie moglem sprawdzic jej wtmp. Jesli otrzymujesz taki
  komunikat i nie wiesz czym jest w ogole wtmp, nie martw sie o to.
  Jesli jest inaczej, pomoz mi rozwiazac problem.

  44..22..  PPrroobblleemmyy pprrzzyy uurruucchhaammiiaanniiuu

  44..22..11..  OOttrrzzyymmuujjee kkoommuunniikkaatt ""CCoouulldd nnoott ggeett ppeeeerr IIPP aaddddrreessss..""

  Uruchomiles bftpd przez konsole. Jesli chcialbys z niego korzystac w
  trybie standalone, musisz dodac opcje "-d". Jesli jednak ustawiles go
  jako usluge inetd, sprawdz to przez:


       hostname:~$ ftp localhost



  44..22..22..  DDoossttaajjee bbllaadd ""BBiinndd ffaaiilleedd:: AAddddrreessss aallrreeaaddyy iinn uussee..""

  Ten blad oznacza, ze inny proces juz wykorzystuje port, na ktorym
  chcesz uruchomic serwer bftpd. Mozesz zmienic numer portu bftpd w
  pliku konfiguracyjnym (bftpd.conf) - opcja PORT w strukturze
  globalnej. Domyslnie ustawiony jest na 21. Jesli nie zmieniales tego
  portu, prawdopodobnie zapomniales wylaczyc swoj stary serwer FTP.
  Zajrzyj do /etc/inetd.conf oraz do wydruku polecenia  "ps aux | grep
  ftp".

  44..33..  PPrroobblleemmyy ppooddcczzaass sseessjjii FFTTPP

  44..33..11..  MMaamm bbllaadd ppooddoobbnnyy ddoo ""550000 UUnnkknnoowwnn ccoommmmaanndd:: ''ffoooo''""

  Twoj program wyslal komende, ktorej bftpd nie rozpoznal. To jest moj
  blad, chyba ze rzeczywiscie wyslales nieistniejace polecenie. Sprawdz
  czy sie nie pomyliles przy jego wpisywaniu i wyslij mi raport, jesli
  masz pewnosc, ze komenda byla dobra.

  44..33..22..  SSeessjjaa ssiiee kkoonncczzyy bblleeddeemm 442211

  Jesli porobujesz sie zalogowac ze zlym haslem, bftpd zerwie
  polaczenie. Jesli sie zalogowales zanim blad sie pojawil, badz blad
  wystapil przed zalogowaniem, to na pewno jest moj blad. Powiedz mi o
  tym.

  44..44..  RRoozznnee

  44..44..11..  JJaakk ddzziiaallaa kkoommpprreessjjaa ww lloocciiee??

  Zalozmy, ze masz katalog nazywajacy sie foo. Nawet jesli nie ma pliku
  o nazwie foo.tar.gz, mozesz jednak uzyc polecenia RETR i bedzie on
  zaweral zawartosc katalogu foo, tar-gzipowana. Mozesz rowniez sciagac
  pliki:

  +o  dirname.tar

  +o  filename.gz

     Jesli chcesz korzystac z tej opcji, wkompiluj ja najpierw (patrz:
     instalacja)



  44..44..22..  MMoojjee ooppccjjee ddllaa ppoollaacczzeenn aannoonnyymmoouuss nniiee ddzziiaallaajjaa

  Jesli w strukturze jest opcja ALIAS=...., nie musisz uzupelniac jej
  opcjami. Zamiast tego, zrob to w sekcji, do ktorej sie alias odnosi.

  44..44..33..  DDllaacczzeeggoo ddookkuummeennttaaccjjaa jjeesstt ttaakk uubbooggaa??

  Odpowiedz jest prosta, nikt niczego nie napisal :)
  Nigdy nie wiem co napisac, wiec jesli masz jakas wizje wzbogacenia
  dokumentacji, prosze, poinformuj mnie o tym. To samo dotyczy tlumaczen
  na inne jezyki. Jesli chcialbyc cos stworzyc, zrob to, jednak zwracaj
  uwage na bledy stylistyczne i literowki.

  55..  CCrreeddiittss

  55..11..  TTeessttoowwaanniiee nnaa rroozznnyycchh ppllaattffoorrmmaacchh


  +o  David L. Nicol (david@kasey.umkc.edu) testowal bftpd na Tru64.

  +o  JackRipper (vic@altoona.net) testowal bftpd na BSD/OS oraz DG-UX.

  +o  Christian Beyerlein (christian@beyerlein.de) testowal bftpd na
     FreeBSD i Solarisie.

  +o  Ludzie z kanalu #linux (IRCNet) sprawdzali bftpd na roznych
     systemach.

  55..22..  PPoommyyssllyy,, uuwwaaggii&& ffrraaggmmeennttyy kkoodduu


  +o  Josh Woodcock (josh@hamparts.com) podzielil sie kiloma uwagami -
     Solaris 8.

  +o  Floh (floh@maflohsoft.de) zasugerowal wbudowac obsluge ASCII.

  +o  Erik Hensema (erik@hensema.xs4all.nl) znalazl blad w netfilterze
     2.4.0 wplywajacy na bftpd.

  +o  Heiko Rother (rother@cmsnet.de) mial wiele dobrych pomyslow (patrz
     changelog).

  +o  Christophe Bailleux (cb@grolier.fr) wprost uwielbia znajdowac
     problemy w listingowaniu katalogow. Poza tym mial wiele uwag i
     podeslal wiele fragmentow kodu.

  +o  Jonathan Heusser (jonathanheusser@gyml.unibas.ch) znalazl blad
     przepelnienia bufora.

  +o  Christian Beyerlein (christian@beyerlein.de) zaproponowal aliasy
     uzytkownikow.

  +o  Elmusafir (jslmarti@campus.cem.itesm.mx) doniosl o bledzie we
     wspolpracy ze Staroffice, ktory naprawiono w wersji 1.0.8.

  +o  Alex Madden (alexm@immstudios.com) oraz Daniel Mack
     (daniel.mack@nextra.de) napisali o niekompatybilnosci z Solarisem -
     naprawiono w 1.0.8.

  +o  Daniel Mack (daniel.mack@nextra.de) podeslal duzego patcha (patrz
     changelog).

  55..33..  PPiissaanniiee ddookkuummeennttaaccjjii



  +o  Radek Michalski (radek@end.p-s.com.pl) przetlumaczyl dokumentacje
     bftpd na jezyk polski.

  55..44..  IInnnnee


  +o  Kilka pomyslow struktry kodu zaczerpnalem z betaftpd Steinera H.
     Gutersona. Ale to raptem kilka linii.



