Использование SFTP для передачи файлов в Linux

SFTP (протокол безопасной передачи файлов) включен вместе с SSH как безопасный способ передачи файлов между удаленными системами. Он также позволяет пользователям выполнять основные административные задачи на удаленных серверах, такие как управление файлами и каталогами и установка прав доступа к файлам.

Как подключиться с помощью SFTP

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

При подключении к другой системе с помощью SFTP используется тот же синтаксис команд, что и при подключении с помощью SSH. Команда требует указать имя пользователя и имя удаленного хоста или IP-адрес системы, к которой вы хотите получить доступ:

В примере ниже мы подключаемся к системе с IP-адресом 192.168.1.99, используя имя пользователя user:

Чтобы завершить текущее соединение, используйте:

Как передавать файлы с помощью SFTP

Использование SFTP позволяет передавать файлы с удаленного сервера на локальную систему и наоборот.

передача удаленных файлов в локальную систему

Используйте команду get в интерфейсе SFTP для передачи файла с удаленного сервера в локальную систему:

Например, чтобы передать файл document.txt из каталога Home удаленной системы в локальную систему, используйте:

По умолчанию SFTP передает файлы в домашний каталог локальной системы. Чтобы передать файлы в другой каталог, добавьте путь к каталогу в конец команды get:

Чтобы изменить имя файла в локальной системе, добавьте новое имя файла в конец команды get.

В приведенном выше примере команда get получает файл document.txt и сохраняет его в локальной системе под именем sample.txt.

SFTP также позволяет передавать весь каталог с удаленной системы с помощью флага -r, указывающего на рекурсивную передачу всех файлов в каталоге:

Добавьте флаг -P к команде get, чтобы передать файл или каталог с сохранением разрешений и времени доступа:

Используйте команду ls для проверки передачи данных в локальную систему:

Передача локальных файлов на удаленный сервер

Чтобы передать файлы с локальной системы на удаленный сервер, используйте команду put. Команда put использует тот же синтаксис и опции, что и команда get.

Например, чтобы передать файл example.txt на удаленный сервер, используйте:

Чтобы передать файл в определенный каталог на удаленном сервере, добавьте путь к каталогу в конец команды put.

Добавление нового имени файла в конец команды put изменяет имя передаваемого файла на удаленном сервере.

Перенос файла с локальной системы на удаленный сервер и изменение имени файла

Для переноса целого каталога требуется флаг -r.

Добавьте флаг -P к команде put, чтобы сохранить права доступа к файлам:

Обслуживание файлов с помощью SFTP

SFTP поддерживает базовое обслуживание файлов. Например, используйте SFTP для изменения прав доступа к файлам и каталогам на удаленной системе.

Команда chown изменяет права владения файлом аналогично команде chmod:

В отличие от команды chmod, chown принимает только идентификаторы пользователей, а не имена пользователей. Поиск UID для удаленного сервера с помощью интерфейса SFTP требует передачи и доступа к файлу /etc/passwd:

Команда chmod работает так же, как и в стандартной оболочке:

Другой вариант - изменить права собственности на файл группы с помощью команды chgrp:

Как и в случае с UID, идентификаторы групп находятся в третьей колонке файла /etc/group на удаленном сервере:

SFTP позволяет установить локальный umask, который изменяет стандартное разрешение на файлы, передаваемые в локальную систему.

Другой способ изменения локальных разрешений файлов - использовать SFTP для воспроизведения поведения команд команд оболочки. Для этого добавьте восклицательный знак (!) перед именем команды.

Например, используя команду chmod в локальной системе:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий