Saya perlu menyalin file di antara mesin-mesin Linux. Masalah yang saya gunakan untuk login ( myuser
), berbeda dari pengguna yang dapat mengakses file.
Jika saya hanya ssh
ke mesin, saya dapat beralih menggunakan pengguna sudo su someuser
, bisakah saya melakukannya sementara scp
?
Saat menggunakan WinSCP saya berhasil melakukannya, dengan mengkonfigurasi SCP / Shell, jadi saya percaya pasti ada cara yang serupa untuk melakukannya melalui shell murni.
ssh
dan eksekusiscp
, seperti inissh myuser@host "sudo scp ..."
:?Jawaban:
Dengan asumsi bahwa pengguna yang Anda BISA ssh tidak memerlukan kata sandi untuk sudo su ke pengguna target, Anda dapat mencoba ini:
... Pikiran, saya masih tidak yakin bahwa hanya mengkonfigurasi
targetuser
untuk hanya mengizinkan scp / sftp / rsync melalui SSH dan menggunakan RSA keypair untuk otentikasi bukanlah pilihan yang jauh lebih baik.sumber
tar -cvf - * | ssh user@host "sudo -u targetuser tar -C /targetdir -xf -"
untuk banyak file-z
atau-j
tidak tergantung pada kecepatan koneksi dan perangkat keras komputer di kedua sisi ...Jika Anda tahu kredensial untuk pengguna lain (
someuser
) Anda bisa menentukannya padascp
panggilan Anda .Dari
man scp
halaman:Berikut sintaks yang digunakan:
Contoh
Anda ingin menyalin file
/home/foo/bar
darihost1
ke localhost Anda, menggunakan penggunasomeuser
, ini perintahnya:Anda akan diminta untuk otentikasi (kata sandi, kunci, ...).
sumber
Ini mungkin mungkin , tapi aku akan mengatakan itu adalah cara yang sangat canggung untuk pergi tentang itu.
Saran pertama saya adalah login sebagai pengguna itu. Bahkan jika Anda tidak memiliki kata sandi pengguna itu, Anda dapat menambahkan kunci ssh publik Anda sendiri ke otor_keys mereka dan kemudian scp menggunakan kunci mereka, seperti yang ditunjukkan rahmu.
Jika itu tidak memungkinkan, saran kedua saya adalah masuk dengan ssh, sudo ke pengguna dan membuat tarfile dari file yang ingin Anda salin dan letakkan di suatu tempat yang dapat dibaca oleh pengguna Anda sendiri. Kemudian scp down tarfile itu.
sumber
gunakan
-S
padascp
perintahmisalnya /superuser/87597/how-to-perform-scp-as-a-sudo-user
itu akan memungkinkan Anda untuk mengeksekusi skrip, pada banyak seperti saya percaya Anda lakukan dengan kasus penggunaan winscp.
sumber
Saya mencoba memberikan beberapa contoh di artikel berikut ini. Ide dasarnya bukan menggunakan scp, tetapi gunakan dd dan ssh dengan sudo user switch. Lihat:
http://hmmss.wordpress.com/2014/07/02/ssh-and-scp-with-another-user
sumber