Як використовувати команду FTP в Linux

Протокол передачі файлів, хоча і є технологією з минулого, залишається актуальним. FTP, попри відсутність сучасних стандартів безпеки, все ще використовується. Розглянемо, як саме.

Застереження: Уникайте використання FTP через Інтернет

Важливо відразу наголосити: FTP (File Transfer Protocol) виник у 1970-х роках, коли питання безпеки не були пріоритетними. Цей протокол не використовує шифрування. Дані для аутентифікації (логін, пароль), а також самі файли передаються у відкритому вигляді, що робить їх вразливими до перехоплення. Проте, FTP ще має своє застосування.

Якщо ви передаєте файли в межах вашої локальної мережі, то ризик менший, але все одно потрібно бути обережним. Якщо ж ваші файли не є конфіденційними, то використання FTP в локальній мережі є прийнятним. В Linux є стандартна утиліта командного рядка ftp, яка підходить для таких сценаріїв.

Категорично не рекомендується використовувати команду `ftp` для доступу до ресурсів у Інтернеті. Для цього є утиліта `sftp`, яка використовує безпечний протокол передачі файлів SSH. У цій статті ми розглянемо обидва варіанти.

На знімку екрана нижче показано, як пароль FTP передається у відкритому вигляді. Будь-хто, хто перехоплює трафік, може легко побачити пароль “MySecretPassword”.

Без шифрування зловмисники можуть не тільки переглядати, а й змінювати файли під час передачі.

Команда ftp

Якщо у вас є дійсний обліковий запис на FTP-сервері, ви можете підключитися до нього за допомогою наступної команди. Замініть IP-адресу в прикладах на адресу вашого FTP-сервера.

ftp 192.168.4.25

Застереження: Використовуйте `ftp` лише для підключення до серверів у довіреній локальній мережі. Для передачі файлів через Інтернет використовуйте команду `sftp`, описану нижче.

FTP-сервер привітає вас повідомленням, яке може відрізнятися. Після цього він запитає ім’я користувача для входу.

Зверніть увагу, що спочатку відображається IP-адреса сервера, до якого ви підключаєтеся, а потім ваше ім’я користувача Linux. Якщо ім’я облікового запису на FTP-сервері збігається з вашим ім’ям користувача Linux, просто натисніть Enter. Якщо вони відрізняються, введіть ім’я користувача для FTP і натисніть Enter.

Вхід на FTP-сервер

Далі вам потрібно буде ввести пароль від вашого FTP-сайту. Пароль не відображається на екрані. Якщо ім’я користувача і пароль підтвердяться, ви успішно зайдете на FTP-сервер.

Ви побачите підказку `ftp>`.

Огляд та завантаження файлів

Спершу, ймовірно, вам потрібно буде переглянути список файлів на сервері. Команда `ls` виконує цю функцію. Припустимо, що файл `gc.c` є на сервері, і ви хочете завантажити його на свій комп’ютер (локальний комп’ютер, як це називають в термінології FTP).

Команда для завантаження файлу — `get`. Введіть `get`, пробіл і назву файлу. Наприклад, `get gc.c`.

FTP-сервер передасть файл на локальний комп’ютер і покаже підтвердження. Ви також побачите розмір файлу та час передачі.

ls
get gc.c

Щоб завантажити кілька файлів одночасно, використовуйте команду `mget` (множинне завантаження). Вам доведеться підтверджувати завантаження кожного файлу окремо (y/n).

Для великої кількості файлів це непрактично. Тому пов’язані файли на FTP-сайтах зазвичай зберігають у вигляді архівів `tar.gz` або `tar.bz2`.

mget *.c

Завантаження файлів на FTP-сервер

Якщо ваш обліковий запис має відповідні дозволи, ви можете завантажувати файли на сервер за допомогою команди `put`. Наприклад, команда `put Songs.tar.gz` завантажить файл `Songs.tar.gz` на FTP-сервер.

put Songs.tar.gz

Аналогічно, є команда `mput` для завантаження кількох файлів одночасно. Потрібно буде підтверджувати завантаження кожного файлу (y/n).

Як і у випадку із завантаженням, рекомендується розміщувати на FTP-сервері архіви `tar`. Наприклад, завантаження файлів `.odt` виглядатиме так:

mput *.odt

Створення та зміна каталогів

Якщо ваш обліковий запис дозволяє, ви можете створювати каталоги за допомогою команди `mkdir`. Пам’ятайте, що каталоги створюються на FTP-сервері, а не на вашому комп’ютері.

Для навігації між каталогами на FTP-сервері використовуйте команду `cd`. Після використання `cd` підказка `ftp>` не зміниться. Щоб дізнатися, в якому каталозі ви знаходитесь, використовуйте команду `pwd` (print working directory).

Припустимо, ви створюєте каталог `music`, переходите в нього, перевіряєте місцезнаходження, і завантажуєте файл у цей каталог:

mkdir music
cd music
pwd
put songs.tar.gz

Для швидкого переходу до батьківського каталогу використовуйте `cdup`.

cdup

Доступ до локального комп’ютера

Для переходу між каталогами на локальному комп’ютері використовуйте команду `lcd` в підказці `ftp>`. Однак, це може бути незручно. Зручніше використовувати команду `!`, яка відкриває вікно оболонки на локальному комп’ютері. Після завершення роботи в оболонці, наберіть `exit`, щоб повернутися до `ftp>`.

Приклад використання `!` для перегляду файлів локального каталогу:

!
ls
exit

Перейменування файлів

Для перейменування файлів на FTP-сервері використовуйте команду `rename`. Наприклад, `rename songs.tar.gz rock_songs.tar.gz` перейменує файл `songs.tar.gz` на `rock_songs.tar.gz`. Після цього за допомогою `ls` можна перевірити результат.

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

Видалення файлів

Для видалення файлів на FTP-сервері використовуйте команду `delete`. Для видалення кількох файлів одночасно використовуйте `mdelete`. Підтвердження (y/n) буде потрібне для кожного файлу.

Приклад видалення одного файлу (`gc.o`) та потім всіх файлів з розширенням `.o`:

ls
delete gc.o
mdelete *.o

Використання команди sftp

Як ми вже наголошували, команду `ftp` слід використовувати лише в локальних мережах. Адреса 192.168.*.* є внутрішньою адресою. Якщо ви хочете підключитися до віддаленого FTP-сервера, використовуйте команду `sftp`.

Приклад підключення до SFTP-сервера з ім’ям користувача `demo` на адресу `test.trebex.net`:

Після підключення ви можете побачити повідомлення про те, що автентичність хоста не може бути підтверджена. Це нормально для першого підключення. Натисніть `y`, щоб прийняти підключення.

Якщо ім’я користувача передано в командному рядку, то його не потрібно вводити окремо. Система запитає тільки пароль. Після введення і перевірки ви побачите підказку `sftp>`.

sftp [email protected]

Команди, які ми розглянули для `ftp`, працюють так само і в сеансі `sftp` з наступними відмінностями:

  • Видалення файлу: `rm` (замість `delete`).
  • Видалення кількох файлів: `rm` (замість `mdelete`).
  • Перехід до батьківського каталогу: `cd ..` (замість `cdup`).

Приклад використання `ls`, `cd` та `pwd` в сеансі `sftp`:

В Linux є й інші варіанти для передачі файлів, наприклад, `scp` (захищена копія), але тут ми зосередилися на `ftp` та `sftp`. Використовуйте ці дві команди правильно, і ваші потреби у зберіганні та передачі файлів будуть задоволені.