Как выполнить SCP как пользователя Sudo

Возможный дубликат:
Scp для удаленного сервера с sudo

Каков наилучший способ сделать SCP из одной коробки в другую как пользователь sudo. Есть два сервера

Сервер A

10.152.2.10

/home/oracle/export/files.txt

Пользователь: развернуть

Сервер B

10.152.2.11

/ Главная / оракул / импорт /

Пользователь: развернуть
Пользователь Sudo: / usr / local / bin / tester

Все, что я хочу, это скопировать файлы с сервера A на сервер B в качестве пользователя sudo …

Чтобы сделать это, сначала я обычно вхожу в систему как пользователь развертывания на целевом сервере, а затем переключаюсь как пользователь sudo без пароля.

После этого SCP для копирования файла, это нормальный способ, которым я выполняю эту деятельность …

Для того чтобы auotmate я написал сценарий

#!/bin/sh ssh [email protected] sudo /usr/local/bin/tester "./tester/deploy.sh" 

Я создал секретный ключ для развертывания пользователя, поэтому он позволяет мне входить в систему как пользователь без пароля. После выполнения команды sudo она переключит пользователя на тестер …

После этого ничего не происходит. Я имею в виду, что скрипт не выполняется. Есть ли способ сделать это по-другому …

Вы можете сделать обертку вокруг ssh , например:

 #!/usr/bin/perl use strict; my @newargs = ( "ssh" ); my $added = 0; for my $arg (@ARGV) { # replace "scp" with "sudo scp" if ($arg =~ /^scp / and $added == 0) { $arg =~ s/^/sudo /; $added = 1; } push @newargs, $arg; } exec @newargs; 

Сделайте его исполняемым и запустите scp следующим образом:

  Scp -S ./ssh-wrapper somefile anotherfile hostname.domain.tld: путь / 

Это будет работать, только если sudo на удаленном сервере не требует пароля (или если он кэширован), но лучше, чем ничего.

Если я правильно понимаю, вам нужно sudo, потому что файл находится где-то у вашего обычного пользователя нет доступа? И у вас нет пароля root или вы не хотите использовать его по какой-то причине?

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

  • Почему я не могу использовать некоторые команды? (Например, vim)
  • Как SSH на сервер как sudo из приложения
  • Sudo без пароля при входе в систему с закрытыми ключами SSH
  • Запустить rsync с правами root на удаленной машине
  • Как запретить пользователям sudo запускать определенные команды?
  • Практичный (ближе к классическому Linux) способ использовать (автоматизировать) SUDO для CygWin
  • Как я могу присвоить команду sudo?
  • Потерянный sudo / su на примере Amazon EC2
  • Howto переключить / chage идентификатор пользователя с помощью скрипта bash для выполнения команд в том же скрипте?
  • Sudoedit: зачем использовать его поверх sudo vi?
  • npm command - sudo или нет?
  • Interesting Posts

    Как установить цвет для определенной строки, если определенные условия выполняются с помощью java?

    где MySQL хранит файлы базы данных?

    Преобразование в верхний и нижний регистр в Java

    Использование JavaFX в JRE 8, ошибка ограничения доступа

    Sublime text 2 command create link, но команда пуста

    Могу ли я переопределить производные типы?

    Восстановить неполные (?) Видеофайлы

    Как специализировать std :: hash :: operator () для пользовательского типа в неупорядоченных контейнерах?

    Ошибка Android – вызвана: java.lang.NoClassDefFoundError: android.support.v4.util.SparseArrayCompat

    Исключение Java JDBC MySQL: «Операция не разрешена после закрытия ResultSet»

    Самый эффективный способ удаления специальных символов из строки

    Изменился ли стандарт C ++ в отношении использования неопределенных значений и неопределенного поведения в C ++ 14?

    Управление порядком отображения легенды ggplot2

    Чтение файла cookie из другого домена

    Почему обертки свойств .NET обойдены во время выполнения при настройке свойств зависимостей в XAML?

    Давайте будем гением компьютера.