Поиск по сайту:

Как использовать команду 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 для передачи файлов через Интернет.

FTP-сервер отвечает приветственным сообщением. Формулировка приветствия будет варьироваться от сервера к серверу. Затем он запрашивает имя пользователя учетной записи, в которую вы входите.

Обратите внимание, что отображается IP-адрес сайта, к которому вы подключаетесь, а затем ваше имя пользователя Linux. Если имя вашей учетной записи на FTP-сервере совпадает с именем пользователя Linux, просто нажмите клавишу Enter. Это будет использовать ваше имя пользователя Linux в качестве имени учетной записи на FTP-сервере. Если ваше имя пользователя Linux и имя учетной записи FTP отличаются, введите имя пользователя учетной записи FTP и нажмите клавишу ВВОД.

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

Вам будет предложено ввести пароль для FTP-сайта. Введите свой пароль и нажмите Enter. Ваш пароль не отображается на экране. Если ваша комбинация имени учетной записи пользователя FTP и пароля проверена FTP-сервером, вы входите на FTP-сервер.

Вам будет представлено приглашение ftp>.

Просмотр и извлечение файлов

Во-первых, вы, вероятно, захотите получить список файлов на FTP-сервере. Команда ls делает именно это. Наш пользователь видит, что файл gc.c находится на FTP-сервере, и хочет загрузить его на свой компьютер. Его компьютер — это «локальный компьютер» на языке FTP.

Команда для извлечения (или «получения») файла — get. Поэтому наш пользователь выдает команду get gc.c. Они набирают get, пробел, а затем имя файла, который они хотят получить.

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

ls
get gc.c

Чтобы получить несколько файлов одновременно, используйте команду mget (multiple get). Команда mget попросит вас подтвердить, хотите ли вы загружать каждый файл по очереди. Ответьте, нажав «y» для «да» и «n» для «нет».

Это было бы утомительно для большого количества файлов. По этой причине коллекции связанных файлов обычно хранятся на ftp-сайтах в виде отдельных файлов tar.gz или tar.bz2.

mget *.c

Загрузка файлов на FTP-сервер

В зависимости от разрешений, предоставленных вашей учетной записи FTP, вы можете загружать (или «помещать») файлы на сервер. Чтобы загрузить файл, используйте команду put. В нашем примере пользователь загружает файл с именем Songs.tar.gz на FTP-сервер.

put Songs.tar.gz

Как вы, вероятно, ожидаете, есть команда для одновременного размещения нескольких файлов на FTP-сервере. Это называется mput (множественный ввод). Как и команда mget, mput будет запрашивать подтверждение «y» или «n» для загрузки каждого файла, один за другим.

Тот же аргумент в пользу помещения наборов файлов в 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-пользователь переименовывает файл с помощью rename, а затем использует команду ls для вывода списка файлов в каталоге.

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

Удаление файлов

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

Здесь наш пользователь FTP перечислил файлы, чтобы увидеть их имена, а затем выбрал один для удаления. Затем они решают удалить их все.

ls
delete gc.o
mdelete *.o

Использование команды sftp

Читатели, знакомые с системой IP-адресации, заметят, что адрес 192.168 FTP-сервера, используемый в приведенных выше примерах, является внутренним IP-адресом, также называемым частным IP-адресом. Как мы предупреждали в начале этой статьи, команду ftp следует использовать только во внутренних сетях.

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

При подключении им сообщается, что соединение установлено. Им также сообщается, что подлинность хоста не может быть проверена. Это нормально для первого подключения нового хоста. Они нажимают «y», чтобы принять соединение.

Поскольку имя учетной записи пользователя (demo) было передано в командной строке, у них не запрашивается имя учетной записи пользователя. Они запрашиваются только для пароля. Это вводится, проверяется и принимается, и им предоставляется приглашение sftp>.

sftp demo@test.rebex.net

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

  • Чтобы удалить файл, используйте rm (FTP использует delete)
  • Чтобы удалить несколько файлов, используйте rm (FTP использует mdelete)
  • Чтобы перейти в родительский каталог, используйте cd .. (FTP использует cdup)

Наш пользователь использовал несколько команд в своем сеансе SFTP. Они использовали ls для вывода списка файлов и cd для перехода в каталог pub. Они использовали pwd для печати рабочего каталога.

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

RELATED: Best Linux Laptops for Developers and Enthusiasts