1  dokumentacja bftpd jezyk polski]
2  napisana przez Max-Wilhelm Bruker <brukie@gmx.net>
3
4
5  Ten dokument stanowi dokumentacje serwera bftpd.
6  ______________________________________________________________________
7
8  Table of Contents
9
10
11  1. Wprowadzenie
12  2. Instalacja
13     2.1 Kompilacja
14     2.2 Uruchamianie serwera
15
16  3. Konfiguracja
17     3.1 Zarzadzanie uzytkownikami
18     3.2 Plik konfiguracji (/etc/bftp.conf)
19        3.2.1 Sekcja globalna
20        3.2.2 Sekcja uzytkownikow
21        3.2.3 Sekcja grup uzytkownikow
22        3.2.4 Sekcja katalogow
23
24  4. FAQ
25     4.1 Problemy z kompilacja
26        4.1.1 Nie moge skompilowac bftpd
27        4.1.2 Wystepuja dziwne ostrzezenia
28        4.1.3 Make mowi ze nie moge uzywac wtmp
29     4.2 Problemy przy uruchamianiu
30        4.2.1 Otrzymuje komunikat "Could not get peer IP address."
31        4.2.2 Dostaje blad "Bind failed: Address already in use."
32     4.3 Problemy podczas sesji FTP
33        4.3.1 Mam blad podobny do "500 Unknown command: 'foo'"
34        4.3.2 Sesja sie konczy bledem 421
35     4.4 Rozne
36        4.4.1 Jak dziala kompresja w locie?
37        4.4.2 Moje opcje dla polaczen anonymous nie dzialaja
38        4.4.3 Dlaczego dokumentacja jest tak uboga?
39
40  5. Credits
41     5.1 Testowanie na roznych platformach
42     5.2 Pomysly, uwagi& fragmenty kodu
43     5.3 Pisanie dokumentacji
44     5.4 Inne
45
46
47  ______________________________________________________________________
48
49  11..  WWpprroowwaaddzzeenniiee
50
51  bfptd jest serwerem FTP dla Linuxa, BSD/OS, FreeBSD, Solarisa, DG-UXa
52  oraz Tru64 (nie wiem czy dziala on na innych systemach, jesli
53  probowales, napisz do mnie). Uruchamiany moze byc poprzez inetd badz w
54  trybie standalone (demon).
55
56  bftpd stara sie byc bardzo elastycznym przy zachowaniu malego rozmiaru
57  oraz swojej szybkosci. Mozesz wprowadzac wartosci domyslne dla kazdej
58  opcji w konfiguracji a nastepnie nadpisywac je poprzez lokalne
59  parametry.
60
61  Do zalet bftpd zaliczyc mozna:
62
63  +o  Prosta konfiguracje
64
65  +o  Predkosc
66
67  +o  Obsluge wiekszosci komend FTP RFC
68
69  +o  Kompresje w locie do archiwow .tar.gz
70
71  +o  Bezpieczenstwo poprzez proste wprowadzenie chroota
72
73  +o  Brak koniecznosci udostepniania basha oraz innych komend w
74     srodowisku chroot
75
76  +o  Logowanie do wtmp oraz do pliku badz demona syslogd
77
78  +o  Obsluge PAM oraz hasel passwd/shadow
79
80  +o  Obsluge komend SITE CHOWN/CHMOD
81
82
83  22..  IInnssttaallaaccjjaa
84
85  22..11..  KKoommppiillaaccjjaa
86
87  Najpierw uruchom nastepujace polecenia (zamieniajac x.x.x na wersje,
88  ktora instalujesz):
89
90
91       tar xzf bftpd-x.x.x.tar.gz
92       cd bftpd-x.x.x
93       ./configure
94       make
95       make install [wymaga roota]
96
97
98
99  Wiedz, ze jesli upgradujesz bftpd ze starszej wersji, musisz recznie
100  skopiowac plik bftpd.conf do katalogu /etc, poniewaz polecenie 'make
101  install' nie nadpisuje pliku konfiguracyjnego.
102
103  Uwaga: Jesli chcesz korzystac z opcji kompresji w locie do .tar.gz,
104  musisz sciagnac kody zrodlowe gzipa oraz paxa i rozpakowac je do
105  katalogu zrodlowego bftpd. Nastepnie, zamiast uruchomic "./configure",
106  wykonaj "./configure --enable-pax=katalog-z-paxem --enable-
107  gzip=katalog-z-gzipem".
108
109  22..22..  UUrruucchhaammiiaanniiee sseerrwweerraa
110
111  Do wyboru masz uruchamianie bftpd poprzez inetd oraz w trybie
112  standalone (demon).
113
114      JJeessllii cchhcceesszz kkoorrzzyyssttaacc zz iinneettdd::
115        Dodaj nastepujacy wpis do /etc/inetd.conf:
116
117          ftp stream tcp nowait root /usr/sbin/bftpd bftpd
118
119
120
121     Wyslij inetdowi sygnal HUP lub zrestartuj system. Od tego momentu
122     bftpd powinien pracowac.
123
124      JJeessllii cchhcceesszz uurruucchhoommiicc bbffttppdd jjaakkoo ddeemmoonnaa ((ssttaannddaalloonnee))::
125        Kaz systemowi uruchamiac:
126
127
128
129     /usr/sbin/bftpd -d
130
131
132
133     przy  starcie.
134
135  33..  KKoonnffiigguurraaccjjaa
136
137  33..11..  ZZaarrzzaaddzzaanniiee uuzzyyttkkoowwnniikkaammii
138
139  Mozesz obslugiwac konta uzytkownikow w bardzo prosty sposob, edytujac
140  plik /etc/passwd oraz, jesli Twoj system to obsluguje, /etc/shadow.
141  Kazdy uzytkownik wystepujacy w /etc/passwd moze sie polaczyc z
142  serwerem jesli poda haslo i spelni wymagania konfiguracji serwera
143  bftpd. Mozna rowniez zalozyc konto anonymous, ustawiajac zmienna
144  ANONYMOUS_USER na yes. bftpd obsluguje rowniez PAM.
145
146  33..22..  PPlliikk kkoonnffiigguurraaccjjii ((//eettcc//bbffttpp..ccoonnff))
147
148  33..22..11..  SSeekkccjjaa gglloobbaallnnaa
149
150  W tej sekcji mozesz nadawac wartosci opcjom konfiguracji. Skladnia
151  jest nastepujaca:
152
153
154       global {
155         nazwa1=wartosc1
156         nazwa2=wartosc2
157       }
158
159
160
161  33..22..22..  SSeekkccjjaa uuzzyyttkkoowwnniikkooww
162
163  W konfiguracji wystepuje rowniez sekcja uzytkownikow, w ktorej mozesz
164  nadpisywac wartosci globalne dla poszczegolnych uzytkownikow.
165  Przyklad:
166
167
168       global {
169         nazwa1=wartosc1
170         nazwa2=wartosc2
171       }
172       user foo {
173         nazwa1=wartosc3
174       }
175
176
177
178  Jesli uzytkownik foo sie zaloguje, to nazwa pierwsza bedzie miala
179  wartosc3. Jesli zalogowany jest inny uzytkownik, nazwa1 ma warosc1,
180  natomiast nazwa2 ma zawsze wartosc2.
181
182
183  33..22..33..  SSeekkccjjaa ggrruupp uuzzyyttkkoowwnniikkooww
184
185  Mozesz takze definiowac konfiguracje grupom uzytkownikow - podobnie
186  jak dla jednego uzytkownika, tylko mozesz przydzielic ich kilku pod
187  postacia grupy. Mozesz rowniez umieszczac w konfiguracji grupy
188  systemowe dodajac do ich nazwy znak @. Przyklad:
189
190
191
192  group foo,bar,@baz {
193    nazwa1=wartosc1
194  }
195
196
197
198  Te opcje oddzialuja na uzytkownikow foo i bar oraz na kazdego z grupy
199  systemowej baz.
200
201  33..22..44..  SSeekkccjjaa kkaattaallooggooww
202
203  Mozesz ustalac opcje, ktore beda wazne tylko dla uzytkownikow
204  znajdujacych sie w danym katalogu, badz jego podkatalogach. Wez pod
205  uwage, ze musisz umiescic te struktury w opcjach globalnych,
206  uzytkownikow oraz grup. W ten sposob mozesz takze nadpisywac
207  specyficzne ustawienia katalogu dla danych uzytkownikow. Przykladowo:
208
209
210       global {
211         nazwa=wartosc1
212         directory /foo {
213           nazwa1=wartosc2
214         }
215       }
216       user bar {
217         directory /foo {
218           nazwa1=wartosc3
219         }
220       }
221
222
223
224  Tutaj, nazwa1 bedzie miala warosc3 jesli uzytkownik bar bedzie w kata-
225  logu /foo. Natomiast wartosc2 przybierze jesli inny uzytkownik zna-
226  jdzie sie w katalogu /foo. Kazdy inny przypadek spowoduje nadanie
227  nazwie1 wartosci1.
228
229  Wyjasnienie tych opcji znajdziesz w pliku konfiguracyjnym bftpd (jesli
230  nie upgradowales bftpd, plik zostal juz skopiowany do /etc).
231  Zmodyfikuj oczywiscie plik do twoich potrzeb. Jednak domyslna
232  konfiguracja tez powinna byc w porzadku.
233
234  44..  FFAAQQ
235
236  44..11..  PPrroobblleemmyy zz kkoommppiillaaccjjaa
237
238  44..11..11..  NNiiee mmooggee sskkoommppiilloowwaacc bbffttppdd
239
240  Daj mi znac. Powiedz na jakim systemie i architekturze go
241  kompilowales, przeslij tez wyjscie calego procesu kompilacji
242  (configure i make). Nie dostaje ton poczty, wiec postaram sie
243  rozwiazac Twoj problem. Jesli natomiast nie odpowiem, prawie
244  zapomnialem o Twoim mailu, wiec go ponow :)
245
246  44..11..22..  WWyysstteeppuujjaa ddzziiwwnnee oossttrrzzeezzeenniiaa
247
248  To jest calkiem mozliwe na platformach, na ktorych nie testowalem
249  bftpd. Nawet jesli bftpd skompiluje sie prawidlowo i dziala bez
250  zarzutu, prosze, przeslij mi informacje na ten temat, gdyz kompilator
251  moze powodowac niezauwazalne na pierwszy rzut oka problemy.
252
253
254
255  44..11..33..  MMaakkee mmoowwii zzee nniiee mmooggee uuzzyywwaacc wwttmmpp
256
257  Prawdopodobnie uzywasz Solarisa. Poniewaz nie mam dostepu do takiej
258  maszyny, nigdy nie moglem sprawdzic jej wtmp. Jesli otrzymujesz taki
259  komunikat i nie wiesz czym jest w ogole wtmp, nie martw sie o to.
260  Jesli jest inaczej, pomoz mi rozwiazac problem.
261
262  44..22..  PPrroobblleemmyy pprrzzyy uurruucchhaammiiaanniiuu
263
264  44..22..11..  OOttrrzzyymmuujjee kkoommuunniikkaatt ""CCoouulldd nnoott ggeett ppeeeerr IIPP aaddddrreessss..""
265
266  Uruchomiles bftpd przez konsole. Jesli chcialbys z niego korzystac w
267  trybie standalone, musisz dodac opcje "-d". Jesli jednak ustawiles go
268  jako usluge inetd, sprawdz to przez:
269
270
271       hostname:~$ ftp localhost
272
273
274
275  44..22..22..  DDoossttaajjee bbllaadd ""BBiinndd ffaaiilleedd:: AAddddrreessss aallrreeaaddyy iinn uussee..""
276
277  Ten blad oznacza, ze inny proces juz wykorzystuje port, na ktorym
278  chcesz uruchomic serwer bftpd. Mozesz zmienic numer portu bftpd w
279  pliku konfiguracyjnym (bftpd.conf) - opcja PORT w strukturze
280  globalnej. Domyslnie ustawiony jest na 21. Jesli nie zmieniales tego
281  portu, prawdopodobnie zapomniales wylaczyc swoj stary serwer FTP.
282  Zajrzyj do /etc/inetd.conf oraz do wydruku polecenia  "ps aux | grep
283  ftp".
284
285  44..33..  PPrroobblleemmyy ppooddcczzaass sseessjjii FFTTPP
286
287  44..33..11..  MMaamm bbllaadd ppooddoobbnnyy ddoo ""550000 UUnnkknnoowwnn ccoommmmaanndd:: ''ffoooo''""
288
289  Twoj program wyslal komende, ktorej bftpd nie rozpoznal. To jest moj
290  blad, chyba ze rzeczywiscie wyslales nieistniejace polecenie. Sprawdz
291  czy sie nie pomyliles przy jego wpisywaniu i wyslij mi raport, jesli
292  masz pewnosc, ze komenda byla dobra.
293
294  44..33..22..  SSeessjjaa ssiiee kkoonncczzyy bblleeddeemm 442211
295
296  Jesli porobujesz sie zalogowac ze zlym haslem, bftpd zerwie
297  polaczenie. Jesli sie zalogowales zanim blad sie pojawil, badz blad
298  wystapil przed zalogowaniem, to na pewno jest moj blad. Powiedz mi o
299  tym.
300
301  44..44..  RRoozznnee
302
303  44..44..11..  JJaakk ddzziiaallaa kkoommpprreessjjaa ww lloocciiee??
304
305  Zalozmy, ze masz katalog nazywajacy sie foo. Nawet jesli nie ma pliku
306  o nazwie foo.tar.gz, mozesz jednak uzyc polecenia RETR i bedzie on
307  zaweral zawartosc katalogu foo, tar-gzipowana. Mozesz rowniez sciagac
308  pliki:
309
310  +o  dirname.tar
311
312  +o  filename.gz
313
314     Jesli chcesz korzystac z tej opcji, wkompiluj ja najpierw (patrz:
315     instalacja)
316
317
318
319  44..44..22..  MMoojjee ooppccjjee ddllaa ppoollaacczzeenn aannoonnyymmoouuss nniiee ddzziiaallaajjaa
320
321  Jesli w strukturze jest opcja ALIAS=...., nie musisz uzupelniac jej
322  opcjami. Zamiast tego, zrob to w sekcji, do ktorej sie alias odnosi.
323
324  44..44..33..  DDllaacczzeeggoo ddookkuummeennttaaccjjaa jjeesstt ttaakk uubbooggaa??
325
326  Odpowiedz jest prosta, nikt niczego nie napisal :)
327  Nigdy nie wiem co napisac, wiec jesli masz jakas wizje wzbogacenia
328  dokumentacji, prosze, poinformuj mnie o tym. To samo dotyczy tlumaczen
329  na inne jezyki. Jesli chcialbyc cos stworzyc, zrob to, jednak zwracaj
330  uwage na bledy stylistyczne i literowki.
331
332  55..  CCrreeddiittss
333
334  55..11..  TTeessttoowwaanniiee nnaa rroozznnyycchh ppllaattffoorrmmaacchh
335
336
337  +o  David L. Nicol (david@kasey.umkc.edu) testowal bftpd na Tru64.
338
339  +o  JackRipper (vic@altoona.net) testowal bftpd na BSD/OS oraz DG-UX.
340
341  +o  Christian Beyerlein (christian@beyerlein.de) testowal bftpd na
342     FreeBSD i Solarisie.
343
344  +o  Ludzie z kanalu #linux (IRCNet) sprawdzali bftpd na roznych
345     systemach.
346
347  55..22..  PPoommyyssllyy,, uuwwaaggii&& ffrraaggmmeennttyy kkoodduu
348
349
350  +o  Josh Woodcock (josh@hamparts.com) podzielil sie kiloma uwagami -
351     Solaris 8.
352
353  +o  Floh (floh@maflohsoft.de) zasugerowal wbudowac obsluge ASCII.
354
355  +o  Erik Hensema (erik@hensema.xs4all.nl) znalazl blad w netfilterze
356     2.4.0 wplywajacy na bftpd.
357
358  +o  Heiko Rother (rother@cmsnet.de) mial wiele dobrych pomyslow (patrz
359     changelog).
360
361  +o  Christophe Bailleux (cb@grolier.fr) wprost uwielbia znajdowac
362     problemy w listingowaniu katalogow. Poza tym mial wiele uwag i
363     podeslal wiele fragmentow kodu.
364
365  +o  Jonathan Heusser (jonathanheusser@gyml.unibas.ch) znalazl blad
366     przepelnienia bufora.
367
368  +o  Christian Beyerlein (christian@beyerlein.de) zaproponowal aliasy
369     uzytkownikow.
370
371  +o  Elmusafir (jslmarti@campus.cem.itesm.mx) doniosl o bledzie we
372     wspolpracy ze Staroffice, ktory naprawiono w wersji 1.0.8.
373
374  +o  Alex Madden (alexm@immstudios.com) oraz Daniel Mack
375     (daniel.mack@nextra.de) napisali o niekompatybilnosci z Solarisem -
376     naprawiono w 1.0.8.
377
378  +o  Daniel Mack (daniel.mack@nextra.de) podeslal duzego patcha (patrz
379     changelog).
380
381  55..33..  PPiissaanniiee ddookkuummeennttaaccjjii
382
383
384
385  +o  Radek Michalski (radek@end.p-s.com.pl) przetlumaczyl dokumentacje
386     bftpd na jezyk polski.
387
388  55..44..  IInnnnee
389
390
391  +o  Kilka pomyslow struktry kodu zaczerpnalem z betaftpd Steinera H.
392     Gutersona. Ale to raptem kilka linii.
393
394
395
396