Pertanyaan Cara melakukan SCP sebagai pengguna Sudo [duplikat]


Kemungkinan Duplikat:
scp ke server jauh dengan sudo 

Apa cara terbaik untuk melakukan SCP dari satu kotak ke yang lain sebagai pengguna sudo. Ada dua server

Server A

10.152.2.10

/home/oracle/export/files.txt

Pengguna: terapkan

Server B

10.152.2.11

/ home / oracle / impor /

Pengguna: terapkan
Pengguna Sudo: / usr / local / bin / tester

yang saya inginkan adalah menyalin file dari server A ke Server B sebagai pengguna sudo ...

Untuk melakukan ini, pertama-tama saya biasanya login seperti menyebarkan pengguna pada server target dan kemudian beralih sebagai pengguna sudo tanpa kata sandi.

setelah itu SCP untuk menyalin file, ini adalah cara normal saya melakukan aktivitas ini ...

Untuk auotmate saya telah menulis skrip

#!/bin/sh
ssh deploy@lnx120 
sudo /usr/local/bin/tester "./tester/deploy.sh"

Saya telah membuat kunci pribadi untuk menyebarkan pengguna, sehingga memungkinkan saya untuk masuk sebagai pengguna penyebaran tanpa kata sandi. afterthar perintah sudo dijalankan itu akan beralih pengguna ke tester ...

setelah itu tidak terjadi apa-apa .. maksud saya skripnya tidak dijalankan ... adakah cara untuk menyelesaikan ini dengan cara yang berbeda ...


4
2017-12-24 04:41


asal


Harap klarifikasi / sederhanakan apa yang Anda coba lakukan. Saya menemukan penggunaan istilah "pengguna sudo" menjadi ambigu. Tampaknya Anda mencoba untuk mengotomatisasi transfer scp, tetapi apa faktor pembatas lainnya? - pcapademic


Jawaban:


Anda bisa membuat pembungkus ssh, seperti ini:

#!/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;

Buat itu dapat dieksekusi, dan jalankan scp seperti ini:

scp -S ./ssh-wrapper somefile anotherfile hostname.domain.tld: path /

Ini hanya akan berfungsi jika sudo di server jauh tidak memerlukan kata sandi (atau jika cache), tetapi lebih baik daripada tidak sama sekali.


9
2017-12-25 19:43





Jika saya mengerti dengan benar, Anda perlu sudo karena file itu di suatu tempat pengguna biasa Anda tidak memiliki akses ke? Dan Anda tidak memiliki kata sandi root, atau tidak ingin menggunakannya untuk beberapa alasan?

Salah satu solusinya adalah menyalin file ke lokasi di mana Anda pengguna biasa memiliki akses ke (dan jika perlu mengubah hak akses pada file juga), dan kemudian melakukan scp.


0
2017-12-25 14:34



SSH kemungkinan dinonaktifkan untuk root. - Jeremy L