kOMENDY FTP

Wprowadzenie | Komendy kontroli dostępu
Komendy transferu | Komendy usług FTP


















e-mail:
sikorson@poczta.onet.pl
wakiz@interia.pl

 

Wprowadzenie:
[top]


Chociaż dzisiaj coraz rzadziej już używa się do połączeń FTP klientów pracujących w trybie tekstowym, możemy nieraz spotkać się z sytuacją, w której będziemy musieli z nich skorzystać - np. gdy pod ręką nie będzie wygodniejszego programu. Wówczas pomocny może okazać się prezentowany w tabeli zestaw najważniejszych poleceń FTP. Na początek można również wpisać komendę help, która przedstawia listę dostępnych poleceń wraz z ich składnią.

Opis komend na podstawie ostatniej specyfikacji zawartej w
RFC 959.
W przyszłości zostaną tutaj dodane opisy dodatkowych komend opisanych w RFC 2228.

Komendy kontroli dostępu:
[top]

USER | PASS | ACCT | CWD | CDUP | SMNT | REIN | QUIT

Następujące komendy określają kontrole dostępu (nazwy komend podane są w nawiasach okrągłych):

USER NAME (USER) - logowanie
Agrgumentem tej komendy jest ciąg znaków identyfijkujących logującego się użytkownika. Ta komenda jest przeważnie pierwszą wysłaną do servera komendą zaraz po nawiązaniu połączenia z serverem. Dodatkowymi informacjami identyfikującymi są komenda PASSword i/lub komenda ACCounT która jest wymagana przez niektóre servery.
PASSWORD (PASS) - hasło
Argumentem tej komendy jest ciąg znaków będących hasłem logującego się uzytkownika. Komenda ta musi zostać bezzwłocznie wprowadzona po komendzie USERname.

ACCOUNT (ACCT) - konto
Argumentem tej komendy jest ciąg znaków określający konto użytkownika. Komenda ta nie jest bezpośrednio związana z komendą USER name lecz niektóre servery jej wymagają w celu określenia dostępu.
Każdej z sytuacji tzn. żądanie lub brak żądania komendy ACCounT ma swój określony kod zwrotny (wysłany przez server):
- kiedy komenda ta jest wymagana do zalogowania, po pomyślnym zalogowaniu wysyłany jest kod 332.
- gdy nie jest ona wymagana, po pomyślnym zalogowaniu wysyłany jest kod 230

CHANGE WORKING DIRECTORY (CWD) - zmiana folderu
Komenda ta pozwala użytkownikowi na zmiane folderu. Argumentem tej komendy jest ścieżka dostępu określająca folder do którego żądamy dostępu.
CHANGE TO PARENT DIRECTORY (CDUP) - zmień folder na nadrzędny
Komenda ta jest specjalnym przypadkiem komendy CWD i została ona wprowadzona aby ułatwić programom transferowanie dzrewa katalogowego pomiędzy systemami mającymi różną składnie nazewnictwa dla folderu nadrzędnego.
STRUCTURE MOUNT (SMNT) - montowanie struktury
Komenda ta pozwala uzytkownikowi na zmondowanie innego systemu plików bez ponownego logowania. (dotyczy systemów UNIX - Linux, ale planyje się je zaimplementować w klienty systemu Windows)
REINITIALIZE (REIN) - reinicjalizacja
Komenda ta rozlącza użytkownika, czyszcząc zajęte przez niego porty wejścia/wyjścia oraz pozwalają trwającemu już transferowy na jego dokończenie. Wszystkie parametry są resetowane do standardowych ustawień. Następnie połączenie zostaje nawiązane ponownie i zaczęcie logowania. Po tej komendzie następna w kolejności jest oczekiwana komenda USER.
LOGOUT (QUIT) - wylogowanie
Komenda ta rozłącza użutkownika i jeżeli nie jest kopiowany żaden plik, server zamyka połączenie. Jeżeli transfer pliku jest w toku, połączenie pozostaje otwarte do momentu otrzymania odpowiedzi o przerwaniu transferu, a następni server zamyka połączenie.
Nieoczekiwane zerwanie połączenie powoduje że server wykonuje za użytkownika komende ABORt oraz logout (QUIT).

Komendy transferu:
[top]

PORT | PASV | TYPE | STRU | MODE

Wszystkie parametry transferu mają swoją standardową wartość, i w związku z tym komendy te są wysyłane razem z parametrami tylko i wyłącznie wtedy gdy różnią sie one od standardowych. Standardową wartością jest ostatnio ustawiona wartość, lub jeżeli żadna wartość niezostała ustawiona to jest ona taka jak opisana poniżej. Powoduje to że server musi "pamiętać" odpowiednie ustawienia. Następujące komendy ustalają parametry transferu:

DATA PORT (PORT)
Argumentem jest numer portu servera dla data port'u użytego przy tworzeniu kanału data connection. Numery takich portów są już standardowo ustawione dla servera i klienta, i normalnie użycie tej komendy nie jest potrzebne.
PASSIVE (PASV) - tryb passive
Komenda ta prosi server aby ten słuchał na data port (który nie jest standardowym data port'em) i czekał na połączenie niż sam inicjował połączenie. Odpowiedz na tą komende zawiera host'a i numer portu na którym server nasłuchuje.
REPRESENTATION TYPE (TYPE) - typ reprezentacji danych
Argument określa trub reprezentacji szczegółowo opisany w
RFC 959 w sekcji Data Representation and Storage.

Każdemu typowi przypożądkowano kod:
A - ASCII (N, T, C)
E - EBCDIC (N, T, C)
I - image

N - Non-print; T - Telnet format effectors; C - CarriageControl (ASA)

Standardowym ustawieniem jest typ ASCII Non-print.

FILE STRUCTURE (STRU) - struktura pliku
Argumentem jest pojedynczy znak określający strukture pliku opisaną w
RFC 959 w sekcji Data Representation and Storage.

Następujące kody zostały przypisane odpowiednim strukturom:
F - File (no record structure)
R - Record structure
P - Page structure

Standardowym ustawieniem jest File.

(dotyczy systemów UNIX - Linux, ale planyje się je zaimplementować w klienty systemu Windows)

TRANSFER MODE (MODE) - tryb transferu
Argumentem tej komendy jest pojedynczy znak określający tryb transferu opany w
RFC 959 w sekcji Transmition Modes.

Następujące kody zostały przypisane odpowiednim trybom:
S - Stream - Strumień
B - Block - Blok
C - Compressed - W postaci zkompresowanej

Standardowym ustawieniem jest Stream.

Komendy usług FTP:
[top]

RETR | STOR | STOU | APPE | ALLO | REST | RNFR
RNTO | ABOR | DELE | RMD | MKD | PWD | LIST
NLST | SITE | SYST | STAT | HELP | NOOP

Komendy usług FTP definiują transfer pliku lub system plików zarządany przez użytkownika. Argumentami tych komend będą przeważnie ścieżka dostępu do pliku. Składnia ścieżki dostępu musi odpowiadać regułom panującym na serverze.
Do grupy tych komend należą:

RETRIVE (RETR) - pobierz - download
Komenda ta powoduje iż server transferuje kopie pliku, sprecyzowanego w ścieżce dostepu, do innego servera lub użytkownika na drugin końcu data connection. Status i zawartość pliku na serverze powinna zostać niezmieniona.
STORE (STOR) - załaduj - upload
Ta komenda sprawia że server zaakceptuje dane przesłane do niego za pomocą data connection i zapisze je na nim jako plik. Jeżeli plik o tej nazwie już na serverze istnieje to uzytkownik mając odpowiednie prawa może nadpisać istniejący plik. Jeżeli plik taki nieistnieje to tworzony jest nowy.
STORE UNIQUE (STOU) - załaduj unikalnie
Komenda ta zachowuje sie podobnie do STORe z tą różnicą że jeżeli na serverze w danym folderze istnieje jusz plik o tej samej nazwie z jaką chcemy zapisac nowy plik generowana jest nowa nazwa pod jaką zostaje ten plik zapisany. Odpowiedź zawiera 250 Transfer started wraz z wygenerowaną nazwą.
APPEND (with create) (APPE) - dodaj, dołącz
Ta komenda sprawia że server zaakceptuje dane przesłane do niego za pomocą data connection i zapisze je na nim jako plik. Jeżeli plik sprecyzowany w ścieżce dostępu istnieje na serverze, wtedy dane zostaną dodane do istniejących. W przeciwnym wypadku plik sprecyzowany w ścieżce dostępu zostanie stworzony od nowa.
ALLOCATE (ALLO) - przydziel
Komenda ta może być wymagana przez niektóre servery do rezerwacji wystarczajcej ilości miejsca do zapisania w całości transferowanego pliku. Argumentem tej komendy jest długość pliku który ma być transferowany.
RESTART (REST) - ponów transfer
Pole argumentu reprezentuje miejsce od którego ma być wznowiony transfer wskazanego pliku. Komenda ta niepowoduje transferu całego pliku ale skok do miejsca w którym transfer został przerwany.
RENAME FROM (RNFR) - zmień nazwe ścieżki dostępu z
Komenda określa starą ścieżke dostępu do pliku która ma być zmieniona na nową. Po tej komendzie musi być wprowadzona komenda RENAME TO określająca nową ścieżke dostępu.
RENAME TO (RNTO) - zmień nazwe ścieżki dostępu na
Komenda która musi wystąpic zaraz po RENAME FROM i która określa nową ścieżke dostępu do pliku.
ABORT (ABOR) - przerwij ostatnią komende
Komenda ta mówi serverowi aby ten przerwał poprzednią komende usług FTP i każdy związany z nią transfer.
Zamykany jest data connection ale control connection nie przez co można wykonywać inne operacje.

Istnieją dwa przypadki w których komenda ABORt zadziała:
- ostatnia komenda usług FTP została pomyślnie zakończona
- ostatnia komenda usług FTP jest w trakcie realizacji

W pierwszym przypadku server zamyka data connection (jeżeli jest on otwarty) i odpowiada kodem 226, która mówi że komenda ABORt została pomyślnie wykonana.
W drugim przypadku server przerywa transfer i zamyka data connection zwracając kod 426 informując że transfer się niepowiudł, a następnie wysyłając kod 226 ktróry stwierdza poprawne wykonanie komendy ABORt.
DELETE (DELE) - skasuj
Komenda ta powoduje że plik określony ścieżką dostępu zostaje usunięty z servera.
REMOVE DIRECTORY (RMD) - usuń folder
Komenda powoduje usunięcie folderu określonego ścieżką dostępu lub podfolderu.
MAKE DIRECTORY (MKD) - utwórz folder
A ta z kolei powoduje utworzenie folderu w ścieżce dostępu lub podfolderu.
PRINT WORKING DIRECTORY (PWD) - pokaż aktualny folder
Wyświetla nazwe folderu w którym aktualnie się znajdujemy.
LIST (LIST) - wyświetla zawartość aktualnego folderu
Powoduje że server wysyła zawartość folderu określoną ścieżką dostępu. Dane zawierające zawartość folderu przesyłane są przez data connection jako typ ASCII lub EBCDIC. (użytkownik musi zadbac o ustawienie odpowiedniego trybu przed wysłaniem komendy LIST). Ponieważ przy transferze z jednego systemu do drugiego informacje o zawartości folderu mogą wyglądać róznie informacja ta może być trudna do wykorzystania w programach. Patrz dalej.
NAME LIST (NLST) - lista nazw
I dlatego też powstała ta komenda która przesyła tylko i wyłacznie ścieżki i nazwy plików bez zbędnych informacji.
SITE PARAMETERS (SITE) - dodatkowe usługi
Komenda ta a raczej grupa komend pozwala na uruchomienie na serverze dodatwowyc usług takich jak np:
- SITE CHAT <user> <message> wysyła wiadomość do innego zalogowanego użytkownika
- SITE PSWD pozwala na zdalną zmiane hasła
- SITE WHO zwraca liste aktualnie zalogowanych osób w formacie user name - connection date - IP/HostName - Transfer KBps
- SITE ZONE wyświetla strefe czasową w jakiej jest uruchomiony server

Oczywiście nie na wszystkich serverach będzie można uzyc tych komend ale np na
BulletProof FTP Server oraz RaidenFTPD napewno :]
SYSTEM (SYST)
Komenda ta pozwala na sprawdzenie na jakim systemie operacyjnym jest wystartowany server.
STATUS (STAT) - pokazuje status połączenia
Wyświetla status połączenia przesyłając tę informacje przez control connection w formie odpowiedzi. Komenda ta może być przesłana do servera w trakcie transferu pliku lub podczas przerwy miedzy transferami. Użyta z parametrem w postaci ścieżki dostępu zwraca jej zawartość nie przez data connection lecze przez control connection zachowując się podobnie jak komenda LIST tylko używając innego kanału..
HELP (HELP) - pomoc
Powiadamia server aby ten wysłał pełną informacje o swoim stanie i liste obsługiwanych komend. Specyfikacja zaleca również aby komenda HELP mogła być dostępna jeszcze przed logowaniem czyli przed komenda USER.
NOOP (NOOP) - nic nie robie ale mnie nierozłączaj :]
Komenda służy do podtrzymywania połączenia z serverem mimo bezczynności użytkownika.

Copyright © 2002 FTP Serwis
Wszelkie prawa zastrzerzone
All designed by sioux
Made with Macromedia Dreamweaver
[top]