|
[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] |
|
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).
|
|
[top] |
|
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.
|
|
[top] |
|
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. |