Polecenia FTP

Z Wikipedii, wolnej encyklopedii

Polecenia FTP, to komendy kontrolne stosowane w komunikacji z serwerami protokołu FTP. Zostały one ustandaryzowane przez Internet Engineering Task Force w ramach inicjatywy Network Working Group. Poniżej znajduje się lista przykładowych poleceń FTP, możliwych do wysłania serwerom FTP, ich dokumentacja, oraz krótkie opisy implementacji zwierające informacje o przeznaczeniu, oraz możliwych odpowiedziach. Protokół FTP został zaprojektowany do działania w ramach dwóch połączeń TCP, jednym kontrolnym, służącym przesyłowi poleceń, oraz drugim połączeniu do transferu danych.

Polecenie RFC Opis
ABOR Zatrzymaj aktywny transfer pliku (abortowanie).
ACCT Informacja konta użytkownika. ACCT może zostać wysłane jedynie po wysłaniu PASS, serwer akceptuje nazwę konta użytkownika kodem 230, uznając, że dostęp pod podaną nazwą użytkownika został przyznany, lub kodem 202 uznając, że kombinacja USER, PASS, ACCT jest prawidłowa. Serwer odrzuci zapytanie kodem 503 jeśli uprzednio nie wystąpiło PASS, lub kodem 530 jeśli kombinacja nazwy użytkownika, hasła i nazwy konta nie są prawidłowe. Wiele klientów FTP nie ma zaimplementowanej obsługi ACCT, część wyśle wartość „ACCT noaccount”[1].
ADAT RFC 2228 ↓ Autentykacja / Dane bezpieczeństwa. Jeśli kod odpowiedzi jest pozytywny, to serwer może używać „ADAT=base64data” jako tekstowej części odpowiedzi.
ALLO Przydziel wystarczającą ilość miejsca na dysku, aby otrzymać plik. Obecnie jest nieużywane, serwer w takim przypadku zwraca kod 202.[1]
APPE Dodaj (utwórz).
AUTH RFC 2228 ↓ Autentykacja/Mechanizm bezpieczeństwa.
AVBL Streamlined FTP Command Extensions Sprawdź dostępne miejsce.
BELL Dzwonek, sygnał dźwiękowy przy operacjach rekurencyjnych. Pozwala przybrać dwie wartości (on/off).
CCC RFC 2228 ↓ Clear Command Channel – przejście na tryb czystego tekstu (niski poziom bezpieczeństwa, część transmisji może zostać przechwycona).
CDUP Przejdź do wyższego katalogu.
CHMOD Zmiana uprawnień do zasobów.
CONF RFC 2228 ↓ Confidentiality Protection Command, ochrona transferowanej zawartości.
CSID Streamlined FTP Command Extensions Identyfikacja Klient – Serwer.
CWD RFC 697 ↓ Zmień katalog.
DELE Usuń plik. Parametr polecenia to nazwa ścieżki pliku. Akceptacja DELE wiąże się z odpowiedzią 250, gdy plik zostanie usunięty, oraz kodami 450 lub 550, gdy usuwanie nie powiedzie się[1].
DSIZ Streamlined FTP Command Extensions Sprawdź rozmiar katalogu.
ENC RFC 2228 ↓ Privacy Protected Channel
EPRT RFC 2428 ↓ Specyfikacja rozszerzonego adresu i portu, do którego serwer powinien się łączyć.
EPSV RFC 2428 ↓ Wejdź w rozszerzony tryb pasywny.
FEAT RFC 2389 ↓ Listuje wszystkie komendy wspierane przez dany serwer (ang. FEATure, umiejętność). Nie posiada argumentów ani parametrów.
GET Polecenie pozwala pobrać plik z katalogu roboczego, wiele klientów pozwala w ramach egzekucji tego polecenia na zmianę nazwy pliku w miejscu docelowym. Porównaj z MGET.[2]
GLOB Polecenie przybiera wartość on/off. Polega na zmianie paradygmatu wyświetlania nazw dla plików w poleceniach takich jak MPUT, MGET, MDELETE.
HASH Uruchamia wyświetlanie się znaku „#” dla każdego transferowanego bloku danych o określonej wielkości, serwery FTP domyślnie mają ustawione 1024 lub 2048 bajtów.
HELP Zwraca informacje o sposobie działania danej komendy, w innym przypadku zwraca ogólne informacje pomocy.
HOST RFC 7151 ↓ Identyfikuje pożądany wirtualny host na serwerze poprzez jego nazwę.
LANG RFC 2640 ↓ Negocjuje język.
LCD Zmień katalog roboczy na znajdujący się na lokalnej maszynie.
LIST Zwraca informacje o pliku lub ścieżce jeśli są wyspecyfikowane, w innym przypadku zwraca informacje o aktualnie używanym katalogu.
LPRT RFC 1639 ↓ Specyfikuje „długi” adres i port hosta, do którego serwer powinien się połączyć.
LPSV RFC 1639 ↓ Wejście w przedłużony tryb pasywny. (L-ONG PASSIVE) Polecenie odpytuje DTP serwera i nasłuchuje danych na porcie innym niż zwykły, celem oczekiwania na połączenie zamiast samodzielnej inicjalizacji.
MDELETE Masowe usuwanie plików z podanego katalogu.
MDTM RFC 3659 ↓ Powrót do czasu ostatniej modyfikacji wybranego pliku.
MFCT The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modyfikacja daty utworzenia wybranego pliku.
MFF The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modyfikacja Faktu (czas ostatniej edycji, czas utworzenia, grupy/właściciele/tryby pliku UNIX).
MFMT The 'MFMT', 'MFCT', and 'MFF' Command Extensions for FTP Modyfikacja faktu daty ostatniej modyfikacji dla pliku/katalogu.
MGET Multiple Get. Pobranie wielu plików z katalogu roboczego lub katalogu wskazanego poprzez podanie jego ścieżki w parametrze MGET.

Polecenie stosowane z wildcard'em tj. znakiem „*”. Np. MGET *EPLB* pobierze każdy plik zawierający w nazwie ciąg „EPLB”[2].

  • Polecenie zwraca kod 200 jako akceptację komendy, i wartość flagi dla TYPE.
  • Następnie zwraca nazwę pierwszego znalezionego pliku, i zapytanie y/n o pobranie.
  • Kod 150 informujący o połączeniu do konkretnego portu, oraz o wielkości pliku (tu wyświetla się też zawartość polecenia HASH jeśli jest aktywne).
  • Kod 226 o sukcesie transferu i średniej szybkości transferu[2].
MIC RFC 2228 ↓ Integrity Protected Command / polecenie zabezpieczenia integralności.
MKD RFC 1123 ↓ Utworzenie katalogu. Parametrem polecenia jest nazwa ścieżki nowego katalogu. Jeśli serwer zaakceptuje MKD, to zwraca kod 257, a odpowiedź zawiera również nazwę nowej ścieżki w formacie podobnym do używanego w PWD. Akceptacja zapytanie MKD wiąże się z odpowiedzią 250, gdy katalog zostaje utworzony, a odrzuca kodem 550. Stosowane wymiennie z XMKD.[1]
MLSD RFC 3659 ↓ Wylistowanie zawartości katalogu jeśli jego nazwa jest podana.
MLST / MLS RFC 3659 ↓ Zwraca dane o dokładnie wybranym obiekcie w wierszu poleceń.
MODE Ustawia tryb transferu (Stream, Block, or Compressed). Obecnie nieużywany, serwer przyjmie „MODE S” / „MODE s” i zwróci kod 200, w innych przypadkach zwróci kod 504.[1]
MPUT Multiple PUT, to jest polecenie załadowania do serwera jednego, bądź wielu plików.

Dla przykładu: mput C:\*EPLB*.docx załaduje na serwer wszystkie pliki formatu DOCX zawierające w swojej nazwie ciąg znaków „EPLB” a znajdujące się w katalogu C:\.

  • Zwraca kod 200 w sytuacji, gdy polecenie zostało przyjęte przez serwer, oraz linijkę MPUT z nazwą odnalezionego pliku i możliwością akceptacji jego transferu (y/n)
  • Kod 150 gdy łączy się z serwerem poprzez połączenie danych, zwraca numer portu (tu wyświetla się też zawartość polecenia HASH jeśli jest aktywne).
  • Kod 226 jako potwierdzenie wykonanego transferu (zwraca informacje o ilości wysłanych danych, zapełnienia miejsca na serwerze, potwierdzenie sukcesu, oraz średniej szybkości przesyłania poszczególnych plików)[3]
NLST Zwraca listę nazw plików w wybranym katalogu.
NOOP Brak operacji (dummy packet; używany aby utrzymać sesję). Typowa odpowiedź to 200.
OPEN Polecenie, którego parametrem jest adres serwera FTP.
OPTS RFC 2389 ↓ Wybór opcji dla funkcji (np. wybór kodowania UTF-8 OPTS UTF8 ON).
PASS Autentykacja hasła. Klient FTP nie powinien wysyłać PASS (hasła), przed wysłaniem polecenia USER. Serwer akceptuje PASS kodem 230 co znaczy, że dostęp został udzielony, lub kodem 202, co znaczy, że dostęp został nadany od razu w odpowiedzi na polecenie USER, ale również z kodem 332, co oznacza, że dostęp zostanie przyznany po wysłaniu zapytania ACCT. Serwer może zwrócić kod 503 w sytuacji, gdy uprzednio nie wysłano polecenia USER, albo gdy nazwa użytkownika i hasło nie są poprawne[1].
PASV Wejście w tryb pasywny.
PBSZ RFC 2228 ↓ Wielkość zadeklarowanego bufora, w celu kontroli integralności danych.
PORT Klient podaje adres IP, na którym nasłuchuje klient w celu utworzenia połączenia do transportu danych. Stosowany w trybie aktywnym. Z powodu powszechnie stosowanej translacji adresów (NAT/masquerade), tryb obecnie jest coraz rzadziej stosowany z powodu skomplikowanej konfiguracji firewall w zakresie aktywnego ftp. Najczęściej jest stosowany tryb pasywny.
PROT RFC 2228 ↓ Poziom zabezpieczenia kanałów komunikacji:

C - Clear , kanał danych nie będzie zaszyfrowany, ani nie będzie sprawdzana jego integralność S - Safe , będzie zabezpieczona integralność kanału danych E - Confidential , dane będą szyfrowane P - Najczęściej stosowany tryb, właściwości S+E

PUT Polecenie załadowania pliku z wybranej lokalizacji do katalogu roboczego na serwerze FTP. Parametrem jest nazwa ścieżki do pliku. Porównaj z poleceniem MPUT.[3]
PWD Zwraca katalog hosta. Jeśli zaakceptuje to kod odpowiedzi powinien wynieść 257 oraz ścieżka katalogu np. „/home/joe”. W razie odrzucenia kod odpowiedzi to 550. Polecenie zamienne z XPWD.[1]
QUIT Rozłącz. W ten sposób klient prosi serwer o zamknięcie połączenia. Polecenie QUIT nie powinno posiadać parametrów, niektóre serwery odrzucą QUIT, gdy zostanie nadane z dodatkowymi parametrami.

Jeśli serwer przyjmuje QUIT, (wymagany kod 221) to zamyka połączenie i zaprzestaje przyjmowania przyszłych requestów. Serwer przestaje słuchać połączeń danych, oraz porzuca wszystkie wcześniej zaakceptowane połączenia.

  • Gdy Klient zamyka połączenie, zazwyczaj nie musi wysyłać polecenia QUIT, to pozwala zaoszczędzić czas i pamięć tak klienta, jak i serwera. Istnieją jednak pewne wadliwe implementacje TCP, takie jak MacTCP 2.0.6, które nie rozpoznają tego rodzaju zamknięć. Jeśli klient pracuje na takim hoście, powinien wykonać zapytanie QUIT i poczekać na zamknięcie połączenia przez serwer, gdyż w przeciwnym przypadku serwer będzie tracić czas powtarzając transmisje sygnału FIN aż do osiągnięcia time-out.[1]
  • Serwery zamykają połączenie bez QUIT w pewnych specyficznych przypadkach, jak np. w przypadku awarii. Dobrze dopracowane klienty FTP traktują zamknięte połączenia jako tymczasowe odrzucenie.
  • Dobrze dopracowany serwer zamknie połączenie gdy zabraknie mu pamięci, albo innych lokalnych zasobów, albo gdy klient jest nieaktywny przez pewien czas. Wiele serwerów odpowie kodem 421 zanim zamknie połączenie. Klient przy kolejnym swoim requeście otrzyma 421 i potraktuje to jako tymczasowe odrzucenie[1].
REIN Reinicjalizacja połączenia.
REMOTEHELP Zwraca informacje o wybranych warunkach polecenia SITE zastosowanych na serwerze FTP.[4]
REST RFC 3659 ↓ Restartuj transfer od podanego miejsca.
RETR Pozyskaj kopię pliku.
RMD RFC 1123 ↓ Usuń ścieżkę / katalog. Parametrem polecenia jest nazwa ścieżki katalogu. W przypadku usunięcia kod zwracany przez serwer to 250, a odrzucenie polecenia wiąże się z kodem 550. Stosowane wymiennie z XRMD.[1]
RMDA Streamlined FTP Command Extensions Usuń drzewo katalogów.
RNFR Zmień nazwę „ze starej nazwy” (ang. Rename FROM). Parametrem polecenia jest nazwa ścieżki pliku. Serwer w przypadku odnalezienia pliku i zaakceptowania RNFR zwraca kod 350, w przeciwnym razie 450 lub 550.[1]
RNTO Zmień nazwę „na nową nazwę” (ang. Rename TO). Musi wystąpić jako kolejne polecenie po RNFR, w przeciwnym razie serwer odrzuci zapytanie kodem 503. Sukces zmiany nazwy pliku serwer komunikuje kodem 250, a porażkę za pomocą 550 lub 553.[1]
SITE Wysyła polecenia specyficzne dla strony do zdalnego serwera (np. SITE IDLE 60 lub SITE UMASK 002). SprawdźSITE HELP aby uzyskać kompletną listę obsługiwanych poleceń.
SIZE RFC 3659 ↓ Zwróć rozmiar pliku.
SMNT Zamontuj strukturę pliku.
SPSV FTP Extension Allowing IP Forwarding (NATs) Użyj trybu pasywnego dla pojedynczego portu (tylko jeden numer portu TCP zarówno do kontroli połączeń oraz pasywnych połączeń danych)
STAT Zwraca informację o statusie serwera, włącznie ze statusem obecnego połączenia.
STOR Akceptuj dane i zachowaj je jako plik na serwerze. Zapytanie STOR poleca serwerowi odczyt zawartości pliku z transmisji danych. Parametr dla STOR zawiera ścieżkę do pliku. Plik jest albo binarny, albo tekstowy, w zależności od ustawienia TYPE. Jeśli serwer zgadza się na utworzenie pliku o takiej nazwie, lub na nadpisanie istniejącego pliku o tej samej nazwie, to zwraca kod 150. Wstrzymuje przyjmowanie innych połączeń i próbuje odczytać zawartość pliku podanego w transferze danych, następnie zamyka połączenie.
  • Akceptuje STOR i zwraca kod 226, czyli cały plik został otrzymany i zapisany.
  • Odrzuca STOR kodem 425 w sytuacji niezestawienia połączenia TCP.
  • Odrzuca STOR kodem 426 w sytuacji gdy połączenie TCP zestawiono, jednak przerwano w trakcie, np. przez problemy z klientem, lub siecią.
  • Odrzuca STOR kodami 451, 452, 552 jeżeli serwer miał problem z zapisem pliku na dysk.[1]
STOU Zachowaj plik jako unikatowy, serwer nada nową nazwę plikowi i umieści go w innej ścieżce.
STRU Ustaw strukturę transferu plików, obecnie nieużywane, „STRU F” lub „STRU f” zwraca kod 200, każda inna kombinacja STRU zwróci 504.[1]
SYST Podaj typ systemu.
THMB Streamlined FTP Command Extensions Pobierz miniaturkę zdalnego pliku graficznego.
TRACE Uruchamia podgląd tracingu pakietów.
TYPE Ustawia tryb transferu (ASCII/Binarny). W zależności od ustawienia tej binarnej flagi, część poleceń (np. RETR, STOR, APPE, STOU) odnosi się do plików binarnych, lub do tekstowych. Serwer akceptuje to polecenia zwracając kod 200.
USER Autentykacja nazwy użytkownika. Serwer akceptuje polecenie USER zwracając kod 230, co oznacza, że klient ma zezwolenie na dostęp do plików będących pod tym użytkownikiem, podczas gdy kody 331 lub 332, oznaczają, że użytkownik otrzyma informacje po wystosowaniu zapytania PASS. Teoretycznie serwer może odrzucić użytkownika kodem 530, jednak w praktyce nie robi tego zanim nie padnie zapytanie PASS. Niektóre aplikacje klienckie traktują kod 230 w ten sam sposób co 530.[1]
VERBOSE Jeśli polecenie ma flagę „on” to aktywne są statystyki oraz wyświetlanie komunikatów każdej wykonanej operacji.
XCUP &1000775 RFC 775 ↓ Przejdź do katalogu wyższego względem obecnego katalogu roboczego.
XMAS RFC 737 ↓ Mail and Send. (Brak przypisanej odpowiedzi). Polecenie mailingowe determinujące sukces.
XMKD &1000775 RFC 775 ↓ Utwórz katalog.
XPWD &1000775 RFC 775 ↓ Zwróć aktualny katalog roboczy hosta.
XRCP &1000743 RFC 743 ↓ Pozwala wysłać najpierw wiadomość (MAIL/MLFL), po czym zdeterminować listę klientów, którzy ją otrzymają.
XRMD &1000775 RFC 775 ↓ Usuń ścieżkę.
XRSQ &1000743 RFC 743 ↓ Jako rozszerzenie protokołu FTP pozwala wybrać jeden z dwóch schematów rozesłania wiadomości do użytkowników serwera. Pobrać listę klientów i wysłać wiadomość.
XSEM &1000737 RFC 737 ↓ Wyślij do terminala, Mailuj jeśli nie możesz (wysłać). Zwraca notyfikację odpowiedzi 009 jeśli wiadomość nie może być wysłana.
XSEN &1000737 RFC 737 ↓ Wyślij do terminala. Zwraca błąd 453 jeśli adresat odrzuci, lub nie jest zalogowany.

Przypisy[edytuj | edytuj kod]

  1. a b c d e f g h i j k l m n o D.J. Bernstein, FTP: File Transfer Protocol [dostęp 2020-08-16] (ang.).
  2. a b c IBM, Get and Multiple Get (mget) Commands [online], 17 sierpnia 2020 (ang.).
  3. a b IBM, Put (put) and Multiple Put (mput) Commands [online], 17 sierpnia 2020 (ang.).
  4. Remotehelp – Computer Dictionary of Information Technology [online], 17 sierpnia 2020 (ang.).

Linki zewnętrzne[edytuj | edytuj kod]