Jak korzystać z polecenia FTP w systemie Linux

Photo of author

By maciekx

Protokół transferu plików, znany jako FTP, jest starszy od wielu naszych czytelników, ale wciąż pozostaje w użyciu. Choć nie oferuje on nowoczesnych standardów bezpieczeństwa, istnieją sytuacje, w których jego zastosowanie może być uzasadnione. W poniższym artykule przedstawimy, jak korzystać z tego protokołu.

Uwaga: Unikaj korzystania z FTP w Internecie

Na wstępie warto zaznaczyć, że FTP powstał w latach 70. XX wieku, a jego projekt nie uwzględniał aspektów bezpieczeństwa. W praktyce oznacza to, że nie stosuje on szyfrowania. Loginy, hasła oraz wszelkie przesyłane dane są transmitowane w formie niezaszyfrowanej, co oznacza, że mogą być łatwo przechwycone przez osoby postronne. Mimo to FTP nadal ma swoje zastosowania.

Przesyłając pliki w obrębie własnej sieci, możesz czuć się względnie bezpieczny, pod warunkiem, że nikt nie monitoruje ruchu w sieci. Jeśli przesyłane pliki nie zawierają poufnych informacji, użycie FTP w sieci lokalnej jest wystarczające. W systemach Linux standardowy program wiersza poleceń ftp doskonale sprawdza się w takich przypadkach.

Jednak zdecydowanie odradzamy korzystanie z FTP do łączenia się z zewnętrznymi serwerami w Internecie. W takich sytuacjach lepiej użyć sftp, które zapewnia bezpieczny transfer plików poprzez protokół SSH. W dalszej części artykułu omówimy oba te narzędzia.

Aby zobrazować, dlaczego korzystanie z FTP w Internecie jest ryzykowne, spójrz na poniższy zrzut ekranu. Pokazuje on hasło FTP w formie niezaszyfrowanej, co oznacza, że każdy, kto ma dostęp do sieci, może łatwo zobaczyć twoje hasło, takie jak „MySecretPassword”.

Brak szyfrowania stwarza również możliwość, że złośliwy użytkownik mógłby zmieniać pliki, które wysyłasz lub odbierasz w trakcie transferu.

Używanie polecenia ftp

Jeżeli posiadasz aktywne konto na serwerze FTP, możesz połączyć się z nim za pomocą poniższego polecenia. W przykładach zamień adres IP na adres serwera FTP, z którym chcesz się połączyć.

ftp 192.168.4.25

Ostrzeżenie: polecenie ftp powinno być stosowane wyłącznie do łączenia się z zaufanymi serwerami w lokalnej sieci. Do przesyłania plików w Internecie użyj sftp, które omówimy poniżej.

Po nawiązaniu połączenia serwer FTP wyświetli powitanie, które może się różnić w zależności od konfiguracji serwera. Następnie poprosi o nazwę użytkownika konta, na które się logujesz.

Zauważ, że na ekranie pojawi się adres IP serwera oraz nazwa użytkownika systemu Linux. Jeśli twoja nazwa użytkownika na serwerze FTP jest taka sama jak w systemie Linux, wystarczy nacisnąć Enter, aby użyć tej samej nazwy. W przeciwnym razie podaj nazwę użytkownika konta FTP i naciśnij Enter.

Logowanie do serwera FTP

Po tym, jak zostaniesz poproszony o podanie hasła do konta FTP, wpisz je i naciśnij Enter. Twoje hasło nie będzie widoczne na ekranie. Jeśli kombinacja nazwy użytkownika i hasła zostanie potwierdzona przez serwer, zostaniesz zalogowany na swoje konto FTP.

Pojawi się znak zachęty ftp>.

Przeglądanie i pobieranie plików

Pierwszym krokiem zwykle jest uzyskanie listy plików znajdujących się na serwerze FTP. Można to zrobić za pomocą polecenia ls. Użytkownik dostrzega plik gc.c na serwerze FTP i chce go pobrać na swój lokalny komputer.

Aby pobrać plik, użyj polecenia get. W naszym przykładzie użytkownik wpisuje get gc.c, co oznacza, że chce pobrać ten plik.

Serwer FTP odpowiada, przesyłając plik na komputer lokalny i informując o zakończeniu transferu, podając także rozmiar pliku oraz czas transferu.

ls
get gc.c

Aby pobrać kilka plików jednocześnie, użyj polecenia mget (multiple get). To polecenie zapyta, czy chcesz pobrać każdy plik z osobna. Możesz odpowiedzieć „y” na tak lub „n” na nie.

Przy dużej liczbie plików może to być niewygodne. Dlatego zazwyczaj zestawy powiązanych plików są archiwizowane w formatach tar.gz lub tar.bz2 na stronach FTP.

mget *.c

Przesyłanie plików na serwer FTP

W zależności od uprawnień przypisanych do twojego konta FTP, możesz mieć możliwość przesyłania plików na serwer. Aby to zrobić, użyj polecenia put. W naszym przykładzie użytkownik przesyła plik o nazwie Songs.tar.gz na serwer FTP.

put Songs.tar.gz

Jak można się spodziewać, istnieje również możliwość przesyłania wielu plików jednocześnie, korzystając z polecenia mput. Tak jak w przypadku mget, mput zapyta o potwierdzenie „y” lub „n” dla każdego pliku.

mput *.odt

Tworzenie i zmiana katalogów

Jeżeli twoje konto użytkownika na serwerze FTP to umożliwia, możesz tworzyć nowe katalogi. Aby to zrobić, użyj polecenia mkdir. Ważne jest, aby pamiętać, że katalogi utworzone za pomocą mkdir będą tworzone na serwerze FTP, a nie na twoim komputerze lokalnym.

Aby zmienić katalog na serwerze FTP, użyj polecenia cd. W przeciwieństwie do polecenia cd w systemie lokalnym, znak zachęty ftp> nie zmieni się, nawet gdy zmienisz bieżący katalog. Polecenie pwd (print working directory) pokaże ci aktualny katalog.

Nasz użytkownik FTP tworzy nowy katalog o nazwie music, przemieszcza się do niego, sprawdza swoją lokalizację za pomocą polecenia pwd, a następnie przesyła plik do tego katalogu.

mkdir music
cd music
pwd
put songs.tar.gz

Aby szybko przejść do katalogu nadrzędnego, użyj polecenia cdup.

cdup

Dostęp do lokalnych plików

Aby zmienić katalog na komputerze lokalnym, możesz użyć polecenia lcd w wierszu poleceń ftp>. Jednak łatwo jest zgubić orientację w lokalnym systemie plików. Wygodniejszą metodą dostępu do lokalnych plików jest użycie polecenia !.

Wprowadzenie polecenia ! otworzy powłokę na komputerze lokalnym. W tej powłoce możesz wykonywać wszystkie operacje, które są dostępne w standardowym terminalu. Wpisując exit, wrócisz do zachęty ftp>.

Nasz użytkownik skorzystał z polecenia ! i wszedł do lokalnej powłoki, gdzie wpisał ls, aby zobaczyć dostępne pliki, a następnie wpisał exit, aby powrócić do sesji FTP.

!
ls
exit

Zmiana nazw plików

Aby zmienić nazwę pliku na serwerze FTP, skorzystaj z polecenia rename. W tym przykładzie użytkownik zmienia nazwę pliku za pomocą polecenia rename, a następnie używa polecenia ls, aby zobaczyć listę plików w katalogu.

rename songs.tar.gz rock_songs.tar.gz
ls

Usuwanie plików

Aby usunąć pliki na serwerze FTP, użyj polecenia delete. Aby usunąć wiele plików jednocześnie, skorzystaj z polecenia mdelete, które poprosi o potwierdzenie „y” lub „n” dla każdego pliku.

W tym przypadku użytkownik FTP najpierw wyświetlił listę plików, aby zobaczyć ich nazwy, a następnie zdecydował się na usunięcie jednego z nich, a później wszystkich plików.

ls
delete gc.o
mdelete *.o

Korzystanie z polecenia sftp

Osoby zaznajomione z adresacją IP zauważyły, że adres 192.168 użyty w powyższych przykładach to prywatny adres IP. Jak wspomniano wcześniej, polecenie ftp powinno być używane tylko w zaufanych sieciach lokalnych.

Jeśli chcesz połączyć się z zdalnym serwerem FTP, skorzystaj z polecenia sftp. W tym przykładzie użytkownik łączy się z kontem SFTP o nazwie demo na publicznie dostępnym serwerze FTP test.trebex.net.

Po nawiązaniu połączenia użytkownik zostaje poinformowany o jego statusie. Otrzymuje również komunikat, że nie można zweryfikować autentyczności hosta, co jest normalne przy pierwszym połączeniu. Akceptują połączenie, wpisując „y”.

Ponieważ nazwa użytkownika (demo) została podana w linii poleceń, nie są wyświetlane dodatkowe monity. Użytkownik jest jedynie proszony o hasło, które wprowadza, a następnie zostaje zalogowany do sesji SFTP.

sftp demo@test.rebex.net

Polecenia opisane wcześniej działają również w sesji SFTP, z następującymi wyjątkami:

Aby usunąć plik, użyj polecenia rm (FTP używa delete)
Aby usunąć wiele plików, użyj rm (FTP używa mdelete)
Aby przejść do katalogu nadrzędnego, użyj polecenia cd .. (FTP używa cdup)

Nasz użytkownik wykonał kilka poleceń w swojej sesji SFTP, używając ls do wyświetlenia plików, cd do przejścia do katalogu pub oraz pwd do wyświetlenia aktualnego katalogu.

Oczywiście istnieją inne metody przesyłania plików w systemie Linux, takie jak scp (secure copy), ale w tym artykule skupiliśmy się na FTP i SFTP. W odpowiednich okolicznościach oba te narzędzia mogą być bardzo przydatne w zarządzaniu plikami.


newsblog.pl