Вопрос или проблема
Я хотел бы передать файл с serverA на serverB. У меня есть доступ к обоим серверам, поэтому я вхожу на serverA и ввожу следующую команду для передачи файла
scp filename.txt mqm@serverB:/home/akotha/testdir
Здесь akotha
— это мой идентификатор, и у меня есть доступ sudo к mqm
; после выполнения команды должен использоваться пользователь mqm
для передачи файла; но если требуется пароль, то тогда он должен использовать мой пароль пользователя akotha
.
Существует ли команда для достижения этого? Пожалуйста, дайте знать, если вам не ясна моя просьба.
#!/bin/ksh
echo "пожалуйста, введите ниже данные для копирования на сервер"
echo "имя удаленного сервера:" read rserver
echo "имя пользователя:" read user
echo "удаленное расположение:" read rloc
echo "пожалуйста, введите полный путь для проверки файлов:" read dir
echo "введите имя файла для копирования:" read file
scp $dir/$file $user@$rserver:$rloc
Если у вас есть имя пользователя/пароль для serverB, вы должны использовать его при выполнении команды scp
.
Если у вас есть пароль для пользователя akotha
на serverB
, вы должны использовать его в следующем формате:
scp filename.txt akotha@serverB:/home/akotha/testdir
Следующее решение позволит пользователю akotha
иметь доступ на запись в папку serverB:/home/akotha/testdir
:
-
Создайте новую группу, которая будет содержать обоих пользователей (это должно делать
root
или с помощьюsudo
)Например, используйте mqmakotha в качестве имени группы, и группа должна содержать обоих пользователей.
Эта ссылка показывает Как добавить пользователей в группу
-
Измените группу папки
/home/akotha/testdir
на эту группуchgrp mqmakotha /home/akotha/testdir
-
Измените разрешение для
/home/akotha/testdir
на чтение/запись для группыchmod g+rw /home/akotha/testdir
Ответ или решение
Для копирования файла с сервера A на сервер B с использованием различных идентификаторов пользователей, необходима корректная настройка командной строки SCP, а также учет доступа к целевому серверу. В данной инструкции мы разберем последовательность действий и команды, позволяющие осуществить этот процесс.
Обзор задачи
Вы хотите перенести файл filename.txt
с сервера A на сервер B, используя учетные данные пользователя mqm
на сервере B, но при этом вам доступен только ваш основной аккаунт akotha
на этом сервере. Для успешного выполнения данной операции вам нужно будет ввести свои учетные данные при каждом вызове команды SCP.
Команда передачи файла
Для выполнения передачи файла вам нужно использовать следующий синтаксис команды SCP:
scp filename.txt mqm@serverB:/home/akotha/testdir
Введение учетных данных
После воспроизведения команды вы будете запрошены ввести пароль для пользователя mqm
. Но также важно использовать свой пароль для пользователя akotha
, если вы включаете специфические настройки в вашем окружении. Если у вас есть доступ к SSH с использованием ключей, это значительно упростит процесс, поскольку вам не потребуется вводить пароль.
Скрипт для упрощения процесса
Вы можете использовать следующий скрипт, который запрашивает у вас необходимые данные и затем выполняет команду SCP:
#!/bin/ksh
echo "Введите следующие данные для копирования на сервер:"
echo "Имя удаленного сервера:"
read rserver
echo "Имя пользователя:"
read user
echo "Удаленное расположение:"
read rloc
echo "Пожалуйста, укажите полный путь к файлам:"
read dir
echo "Введите название файла или маску для пакетного копирования:"
read file
scp $dir/$file $user@$rserver:$rloc
Настройка прав доступа
Если вы хотите использовать учетные данные пользователя akotha
для записи в каталог на сервере B, вам необходимо убедиться, что права доступа к каталогу /home/akotha/testdir
корректно настроены. Для этого выполните следующие шаги:
-
Создание группы:
Сначала создайте новую группу, которая будет включать обоих пользователей (какmqm
, так иakotha
). Это можно сделать только с правамиroot
или с помощьюsudo
. Например:sudo groupadd mqmakotha sudo usermod -aG mqmakotha mqm sudo usermod -aG mqmakotha akotha
-
Изменение группы каталога:
Измените группу каталога, куда вы хотите копировать файлы:sudo chgrp mqmakotha /home/akotha/testdir
-
Обновление прав доступа:
Убедитесь, что каталог доступен для записи:sudo chmod g+rw /home/akotha/testdir
Заключение
Следуя вышеуказанным шагам, вы сможете успешно передать файл с одного сервера на другой, используя различные учетные записи. Убедитесь, что каждый этап проходит корректно, чтобы избежать ошибок доступа. Все эти меры помогут создать безопасную и работающую среду для передачи файлов между серверами.