
Протокол передачи файлов старше, чем у большинства наших читателей, но он все еще силен. 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 и нажмите Enter.
Вход на FTP-сервер
Вам будет предложено ввести пароль для FTP-сайта. Введите свой пароль и нажмите Enter. Ваш пароль не отображается на экране. Если комбинация имени учетной записи пользователя FTP и пароля проверяется FTP-сервером, вы затем входите на FTP-сервер.
Вам будет представлено ftp>
приглашение.
Поиск и получение файлов
Во-первых, вы, вероятно, захотите получить список файлов на FTP-сервере. Команда ls
делает именно это. Наш пользователь видит, что файл gc.c
находится на FTP-сервере, и хочет загрузить его на свой компьютер. Его компьютер - это «локальный компьютер» на языке FTP.
Команда для получения (или «получения») файла - это get
. Таким образом, наш пользователь выдает команду get gc.c
. Они вводят get
, пробел, а затем имя файла, который они хотят получить.
FTP-сервер отвечает, передавая файл на локальный компьютер и подтверждая, что передача произошла. Также отображается размер файла и время, необходимое для передачи.
ls
получить gc.c
Чтобы получить сразу несколько файлов, используйте команду mget
(multiple get). Команда 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
(множественный путь). Как и mget
команда, mput
запросит подтверждение «y» или «n» для загрузки каждого файла, один за другим.
Тот же аргумент для помещения наборов файлов в архивы tar применяется для помещения файлов, как и для получения файлов. Наш пользователь загружает несколько файлов «.odt» с помощью следующей команды:
mput * .odt
Создание и изменение каталогов
Если ваша учетная запись на ftp-сервере разрешает это, вы можете создавать каталоги. Команда , чтобы сделать это mkdir
. Чтобы было ясно, любой каталог, который вы создаете с помощью mkdir
команды, будет создан на сервере ftp, а не на вашем локальном компьютере.
Чтобы изменить каталоги на ftp-сервере, используйте cd
команду. Когда вы используете cd
команду, ftp>
подсказка не изменится в соответствии с вашим новым текущим каталогом. Команда pwd
(распечатать рабочий каталог) покажет вам ваш текущий каталог.
Наш ftp-пользователь создает каталог с именем music, переходит в этот новый каталог, подтверждает, где он находится, с помощью pwd
команды, а затем загружает файл в этот каталог.
mkdir музыка
cd музыка
pwd
поместите songs.tar.gz
Для быстрого перехода в родительский каталог текущего каталога используйте cdup
команду.
cdup
Доступ к локальному компьютеру
Чтобы изменить каталог на локальном компьютере, вы можете использовать lcd
команду в командной ftp>
строке. Однако легко потерять из виду, где вы находитесь в локальной файловой системе. Более удобный метод доступа к локальной файловой системе - использовать !
команду.
Команда !
открывает окно оболочки на локальном компьютере. В этой оболочке можно делать все, что можно в стандартном окне терминала. При вводе exit
вы вернетесь к ftp>
приглашению.
Наш пользователь использовал !
команду и вошел в окно оболочки на локальном компьютере. Они выполнили ls
команду, чтобы увидеть, какие файлы присутствуют в этом каталоге, а затем набрали exit
команду, чтобы вернуться к ftp>
приглашению.
!
ls
Выход
Переименование файлов
Чтобы переименовать файлы на FTP-сервере, используйте rename
команду. Здесь наш FTP-пользователь переименовывает файл в, rename
а затем использует ls
команду для вывода списка файлов в каталоге.
переименовать песни.tar.gz rock_songs.tar.gz
ls
Удаление файлов
Для удаления файлов на FTP-сервере используйте delete
команду. Чтобы удалить сразу несколько файлов, используйте mdelete
команду. Вам будет предложено указать «y» или «n» подтверждения для удаления каждого файла.
Здесь наш FTP-пользователь перечислил файлы, чтобы увидеть их имена, а затем выбрал один для удаления. Затем они решают удалить их все.
ls
удалить gc.o
mdelete * .o
Использование команды sftp
Читатели, знакомые с системой IP-адресации, заметят, что адрес 192.168 FTP-сервера, использованный в приведенных выше примерах, является внутренним IP-адресом, также называемым частным IP-адресом. Как мы предупреждали в начале этой статьи, ftp
команду следует использовать только во внутренних сетях.
Если вы хотите подключиться к удаленному или общедоступному FTP-серверу, используйте sftp
команду. Наш пользователь собирается подключиться к учетной записи SFTP, вызываемой demo
на общедоступном FTP-сервере, расположенном по адресу test.trebex.net
.
Когда они подключаются, им сообщают, что соединение установлено. Им также сообщают, что подлинность хоста не может быть проверена. Это нормально для первого подключения нового хоста. Они нажимают «y», чтобы принять соединение.
Поскольку имя учетной записи пользователя ( demo
) было передано в командной строке, они не запрашивают имя учетной записи пользователя. У них запрашивается только пароль. Он вводится, проверяется и принимается, и они отображаются с sftp>
подсказкой.
sftp [email protected]
Команды FTP, которые мы описали выше, будут работать точно так же в сеансе SFTP, за следующими исключениями.
- Для удаления файла используйте
rm
(FTP используетdelete
) - Для удаления нескольких файлов используйте
rm
(используется FTPmdelete
) - Для перехода в родительский каталог используйте
cd ..
(FTP используетcdup
)
Наш пользователь использовал несколько команд в своем сеансе SFTP. Их нужно использовать ls
для вывода списка файлов и cd
перехода в каталог pub. Они использовали pwd
для печати рабочего каталога.
В мире Linux есть и другие варианты передачи файлов, в частности scp
(безопасное копирование), но здесь мы сосредоточились на FTP и SFTP. Эти две команды, используемые в соответствующих сценариях, будут хорошо служить вам и вашим потребностям в хранении и извлечении файлов.