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

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

Попередження: не використовуйте FTP через Інтернет

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

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

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

Щоб пояснити, чому ви ніколи не хочете використовувати FTP через Інтернет, перегляньте наведений нижче знімок екрана. Він показує пароль FTP у відкритому тексті. Будь-хто у вашій мережі або між вами та FTP-сервером в Інтернеті може легко побачити пароль «MySecretPassword».

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

Команда ftp

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

ftp  192.168.4.25

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

  Як встановити та налаштувати Plex Media Server на Linux

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

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

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

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

Вам буде представлено підказку ftp>.

Оглядання та отримання файлів

По-перше, ви, ймовірно, захочете отримати список файлів на FTP-сервері. Команда ls робить саме це. Наш користувач бачить, що файл gc.c знаходиться на FTP-сервері, і хоче завантажити його на свій комп’ютер. Його комп’ютер — це «локальний комп’ютер» на мові FTP.

Команда для отримання (або «отримання») файлу – це get. Тому наш користувач видає команду get gc.c. Вони вводять get, пробіл, а потім ім’я файлу, який вони хочуть отримати.

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

ls
get gc.c

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

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

mget *.c

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

Залежно від дозволів, які були надані вашому обліковому запису FTP, ви можете завантажувати (або «поміщати») файли на сервер. Щоб завантажити файл, скористайтеся командою put. У нашому прикладі користувач завантажує файл під назвою Songs.tar.gz на FTP-сервер.

put Songs.tar.gz

Як ви, напевно, очікували, є команда для одночасного розміщення кількох файлів на FTP-сервері. Це називається mput (multiple put). Так само, як і команда mget, mput запитатиме підтвердження «y» або «n» для завантаження кожного файлу, один за одним.

  5 найкращих дистрибутивів Linux для кращого терміну служби батареї

Той самий аргумент для розміщення наборів файлів до архівів tar застосовується для розміщення файлів, як і для отримання файлів. Наш користувач завантажує декілька файлів «.odt» за допомогою такої команди:

mput *.odt

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

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

Щоб змінити каталоги на ftp-сервері, скористайтеся командою cd. Коли ви використовуєте команду cd, підказка ftp> не зміниться відповідно до вашого нового поточного каталогу. Команда pwd (друк робочого каталогу) покаже вам ваш поточний каталог.

Наш користувач ftp створює каталог під назвою music, переходить у новий каталог, підтверджує, де вони знаходяться, за допомогою команди pwd, а потім завантажує файл у цей каталог.

mkdir music
cd music
pwd
put songs.tar.gz

Для швидкого переміщення до батьківського каталогу поточного каталогу скористайтеся командою cdup.

cdup

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

Щоб змінити каталог на локальному комп’ютері, ви можете скористатися командою lcd у підказці ftp>. Однак легко втратити інформацію про те, де ви перебуваєте в локальній файловій системі. Більш зручним методом доступу до локальної файлової системи є використання ! команда.

! команда відкриває вікно оболонки на локальному комп’ютері. У цій оболонці ви можете робити все, що можете у стандартному вікні терміналу. Коли ви вводите exit, ви повертаєтеся до підказки ftp>.

Наш користувач скористався ! команду та увійшов у вікно оболонки на локальному комп’ютері. Вони випустили команду ls, щоб побачити, які файли є в цьому каталозі, а потім ввели exit, щоб повернутися до підказки ftp>.

!
ls
exit

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

Щоб перейменувати файли на FTP-сервері, скористайтеся командою rename. Тут наш FTP-користувач перейменовує файл із перейменуванням, а потім використовує команду ls, щоб вивести список файлів у каталозі.

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

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

Щоб видалити файли на FTP-сервері, скористайтеся командою delete. Щоб видалити кілька файлів одночасно, скористайтеся командою mdelete. Вам буде запропоновано надати підтвердження «y» або «n» для видалення кожного файлу.

  Як спілкуватися в чаті в потоках Twitch на робочому столі Linux з Chatterino

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

ls
delete gc.o
mdelete *.o

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

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

Якщо ви хочете підключитися до віддаленого або загальнодоступного FTP-сервера, скористайтеся командою sftp. Наш користувач збирається підключитися до облікового запису SFTP під назвою demo на загальнодоступному FTP-сервері, розташованому за адресою test.trebex.net.

Коли вони підключаються, їм повідомляється, що з’єднання встановлено. Їм також повідомляють, що автентичність хоста не може бути підтверджена. Це нормально для першого підключення до нового хоста. Вони натискають «y», щоб прийняти підключення.

Оскільки ім’я облікового запису користувача (демо) було передано в командному рядку, їм не буде запропоновано ім’я облікового запису користувача. Їм пропонується лише пароль. Це вводиться, перевіряється і приймається, і вони відображаються з підказкою sftp>.

sftp [email protected]

Команди FTP, які ми описали вище, працюватимуть так само під час сеансу SFTP, за наступними винятками.

Щоб видалити файл, використовуйте rm (FTP використовує delete)
Щоб видалити декілька файлів, використовуйте rm (FTP використовує mdelete)
Щоб перейти до батьківського каталогу, використовуйте cd .. (FTP використовує cdup)

Наш користувач використав кілька команд у своєму сеансі SFTP. Вони використовують ls для переліку файлів і cd для переходу в каталог pub. Вони використовували pwd для друку робочого каталогу.

Є й інші варіанти передачі файлів у світі Linux, зокрема scp (захищена копія), але тут ми зосередилися на FTP та SFTP. Ці дві команди, що використовуються у відповідних сценаріях, допоможуть вам і вашим потребам у зберіганні та пошуку файлів.