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.
PolecenieRFC OpisABORZatrzymaj aktywny transfer pliku (abortowanie).ACCTInformacja 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”.ADAT Autentykacja / Dane bezpieczeństwa. Jeśli kod odpowiedzi jest pozytywny, to serwer może używać „ADAT=base64data” jako tekstowej części odpowiedzi.ALLOPrzydziel wystarczającą ilość miejsca na dysku, aby otrzymać plik. Obecnie jest nieużywane, serwer w takim przypadku zwraca kod 202.APPEDodaj (utwórz).AUTH Autentykacja/Mechanizm bezpieczeństwa.AVBLStreamlined FTP Command ExtensionsSprawdź dostępne miejsce.BELLDzwonek, sygnał dźwiękowy przy operacjach rekurencyjnych. Pozwala przybrać dwie wartości (on/off).CCC Clear Command Channel – przejście na tryb czystego tekstu (niski poziom bezpieczeństwa, część transmisji może zostać przechwycona).CDUPPrzejdź do wyższego katalogu.CHMODZmiana uprawnień do zasobów.CONF Confidentiality Protection Command, ochrona transferowanej zawartości.CSIDStreamlined FTP Command ExtensionsIdentyfikacja Klient – Serwer.CWD Zmień katalog.DELEUsuń 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ę.DSIZStreamlined FTP Command ExtensionsSprawdź rozmiar katalogu.ENC Privacy Protected ChannelEPRT Specyfikacja rozszerzonego adresu i portu, do którego serwer powinien się łączyć.EPSV Wejdź w rozszerzony tryb pasywny.FEAT Listuje wszystkie komendy wspierane przez dany serwer (ang. FEATure, umiejętność). Nie posiada argumentów ani parametrów.GETPolecenie 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.GLOBPolecenie przybiera wartość on/off. Polega na zmianie paradygmatu wyświetlania nazw dla plików w poleceniach takich jak MPUT, MGET, MDELETE.HASHUruchamia 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.HELPZwraca informacje o sposobie działania danej komendy, w innym przypadku zwraca ogólne informacje pomocy.HOST Identyfikuje pożądany wirtualny host na serwerze poprzez jego nazwę.LANG Negocjuje język.LCDZmień katalog roboczy na znajdujący się na lokalnej maszynie.LISTZwraca informacje o pliku lub ścieżce jeśli są wyspecyfikowane, w innym przypadku zwraca informacje o aktualnie używanym katalogu.LPRT Specyfikuje „długi” adres i port hosta, do którego serwer powinien się połączyć.LPSV 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.MDELETEMasowe usuwanie plików z podanego katalogu.MDTM Powrót do czasu ostatniej modyfikacji wybranego pliku.MFCTThe ‘MFMT’, ‘MFCT’, and ‘MFF’ Command Extensions for FTPModyfikacja daty utworzenia wybranego pliku.MFFThe ‘MFMT’, ‘MFCT’, and ‘MFF’ Command Extensions for FTPModyfikacja Faktu (czas ostatniej edycji, czas utworzenia, grupy/właściciele/tryby pliku UNIX).MFMTThe ‘MFMT’, ‘MFCT’, and ‘MFF’ Command Extensions for FTPModyfikacja faktu daty ostatniej modyfikacji dla pliku/katalogu.MGETMultiple Get. Pobranie wielu plików z katalogu roboczego lub katalogu wskazanego poprzez podanie jego ścieżki w parametrze MGET. Polecenie stosowane z wildcardem, tj. znakiem „*”. Np. MGET *EPLB* pobierze każdy plik zawierający w nazwie ciąg „EPLB”.
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.MIC Integrity Protected Command / polecenie ochrony integralności.MKD 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.MLSD Wylistowanie zawartości katalogu jeśli jego nazwa jest podana.MLST / MLS Zwraca dane o dokładnie wybranym obiekcie w wierszu poleceń.MODEUstawia 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.MPUTMultiple 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)NLSTZwraca listę nazw plików w wybranym katalogu.NOOPBrak operacji (dummy packet; używany aby utrzymać sesję). Typowa odpowiedź to 200.OPENPolecenie, którego parametrem jest adres serwera FTP.OPTS Wybór opcji dla funkcji (np. wybór kodowania UTF-8 OPTS UTF8 ON).PASSAutentykacja 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.PASVWejście w tryb pasywny.PBSZ Wielkość zadeklarowanego bufora, w celu kontroli integralności danych.PORTKlient 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 Poziom zabezpieczenia kanałów komunikacji: C – Clear, kanał danych nie będzie zaszyfrowany, ani nie będzie sprawdzana jego integralność S – Safe, będzie zapewniona integralność kanału danych E – Confidential, dane będą szyfrowane P – Najczęściej stosowany tryb, właściwości S+EPUTPolecenie załadowania pliku z wybranej lokalizacji do katalogu roboczego na serwerze FTP. Parametrem jest nazwa ścieżki do pliku. Porównaj z poleceniem MPUT.PWDZwraca 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.QUITRozłą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. 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.REINReinicjalizacja połączenia.REMOTEHELPZwraca informacje o wybranych warunkach polecenia SITE zastosowanych na serwerze FTP.REST Restartuj transfer od podanego miejsca.RETRPozyskaj kopię pliku.RMD 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.RMDAStreamlined FTP Command ExtensionsUsuń drzewo katalogów.RNFRZmień 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.RNTOZmień 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.SITEWysył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 Zwróć rozmiar pliku.SMNTZamontuj strukturę pliku.SPSVFTP 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)STATZwraca informację o statusie serwera, włącznie ze statusem obecnego połączenia.STORAkceptuj 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ą.