Команда для копирования файла на удаленный сервер с другим идентификатором пользователя?

Вопрос или проблема

Я хотел бы передать файл с 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 корректно настроены. Для этого выполните следующие шаги:

  1. Создание группы:
    Сначала создайте новую группу, которая будет включать обоих пользователей (как mqm, так и akotha). Это можно сделать только с правами root или с помощью sudo. Например:

    sudo groupadd mqmakotha
    sudo usermod -aG mqmakotha mqm
    sudo usermod -aG mqmakotha akotha
  2. Изменение группы каталога:
    Измените группу каталога, куда вы хотите копировать файлы:

    sudo chgrp mqmakotha /home/akotha/testdir
  3. Обновление прав доступа:
    Убедитесь, что каталог доступен для записи:

    sudo chmod g+rw /home/akotha/testdir

Заключение

Следуя вышеуказанным шагам, вы сможете успешно передать файл с одного сервера на другой, используя различные учетные записи. Убедитесь, что каждый этап проходит корректно, чтобы избежать ошибок доступа. Все эти меры помогут создать безопасную и работающую среду для передачи файлов между серверами.

Оцените материал
Добавить комментарий

Капча загружается...