Протокол передачи файлов старше, чем большинство наших читателей, но он все еще работает. 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
получить gc.c
Чтобы получить несколько файлов одновременно, используйте команду mget
(множественное получение). Команда mget
попросит вас подтвердить, хотите ли вы загружать каждый файл по очереди. Ответьте, нажав «y» для «да» и «n» для «нет».
Это было бы утомительно для большого количества файлов. По этой причине коллекции связанных файлов обычно хранятся на FTP-сайтах в виде отдельных файлов tar.gz или tar.bz2 .
СВЯЗАННЫЕ: Как извлечь файлы из файла .tar.gz или .tar.bz2 в Linux
mget * .c
Загрузка файлов на FTP-сервер
В зависимости от разрешений, предоставленных вашей учетной записи FTP, вы можете загружать (или «помещать») файлы на сервер. Чтобы загрузить файл, используйте команду put
. В нашем примере пользователь загружает файл с именем Songs.tar.gz
на FTP-сервер.
положить Songs.tar.gz
Как вы, вероятно, и ожидаете, есть команда для одновременной загрузки нескольких файлов на FTP-сервер. Это называется mput
(множественный mput
). Как и команда mget
, mput
запросит подтверждение «y» или «n» для загрузки каждого файла, один за другим.
Тот же аргумент для помещения наборов файлов в архивы tar применяется для размещения файлов, как и для получения файлов. Наш пользователь загружает несколько файлов «.odt» с помощью следующей команды:
mput * .odt
Создание и изменение каталогов
Если ваша учетная запись на FTP-сервере разрешает это, вы можете создавать каталоги. Команда для этого — mkdir
. Для ясности, любой каталог, который вы создаете с помощью команды mkdir
будет создан на сервере ftp, а не на вашем локальном компьютере.
Чтобы изменить каталоги на сервере ftp, используйте команду cd
. Когда вы используете команду cd
приглашение ftp>
не изменится, чтобы отразить ваш новый текущий каталог. Команда pwd
(печать рабочего каталога) покажет вам ваш текущий каталог.
Наш пользователь ftp создает каталог с именем music, переходит в этот новый каталог, подтверждает свое pwd
с помощью команды pwd
затем загружает файл в этот каталог.
MKDIR музыка
музыка CD
PWD
положить songs.tar.gz
Для быстрого перемещения в родительский каталог текущего каталога используйте команду cdup
.
CDUP
Доступ к локальному компьютеру
Чтобы изменить каталог на локальном компьютере, вы можете использовать команду lcd
командной строке ftp>
. Однако легко потерять отслеживание того, где вы находитесь в локальной файловой системе. Более удобный способ доступа к локальной файловой системе — использовать !
команда.
!
Команда открывает окно оболочки для локального компьютера. В этой оболочке вы можете делать все, что можете в стандартном окне терминала. Когда вы вводите команду exit
вы возвращаетесь к приглашению ftp>
.
Наш пользователь использовал !
Команда и вошел в окно оболочки на локальном компьютере. Они ls
команду ls
чтобы увидеть, какие файлы присутствуют в этом каталоге, и набрали команду exit
чтобы вернуться к приглашению ftp>
.
!
Ls
выход
Переименование файлов
Чтобы переименовать файлы на FTP-сервере, используйте команду rename
. Здесь наш пользователь FTP переименовывает файл с rename
а затем использует команду ls
для ls
списка файлов в каталоге.
переименовать songs.tar.gz rock_songs.tar.gz
Ls
Удаление файлов
Для удаления файлов на FTP-сервере используйте команду delete
. Чтобы удалить несколько файлов одновременно, используйте команду mdelete
. Вам будет предложено предоставить подтверждение «y» или «n» для удаления каждого файла.
Здесь наш пользователь FTP перечислил файлы, чтобы увидеть их имена, а затем выбрал один для удаления. Затем они решают удалить их всех.
Ls
удалить gc.o
mdelete * .o
Использование команды sftp
Читатели, знакомые с системой IP-адресации, заметят, что адрес FTP-сервера 192.168, используемый в приведенных выше примерах, является внутренним 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
для ls
списка файлов и cd
для перехода в каталог pub. Они использовали pwd
для печати рабочего каталога.
В мире Linux существуют и другие варианты передачи файлов, в частности, scp
( безопасное копирование ), но мы сосредоточились здесь на FTP и SFTP. Используемые в соответствующих сценариях, эти две команды хорошо послужат вам и вашим потребностям в хранении и поиске файлов.