Saya punya file di server A (yang ada di belakang NAT jadi tidak langsung dialamatkan). File perlu disalin ke server B dalam direktori yang terbatas pada root. Saya memiliki akun di server B dengan hak sudo. Apa sintaks untuk perintah scp?
command-line
security
sudo
scp
Neil
sumber
sumber
Jawaban:
Pertama, Anda perlu menyalin file ke tempat di mana Anda memiliki akses tulis tanpa sudo,
Kemudian pindahkan file menggunakan sudo
Jika Anda tidak memiliki tempat yang bisa ditulisi, buat direktori sementara dengan izin menulis untuk pengguna Anda.
sumber
chmod 777
biasanya cara yang salah untuk melakukannya. Pertimbangkan apa yang bisa terjadi jika orang lain masuk dan tahu Anda akan menjalankan kode ini.ssh sudo
tidak bekerja untuk saya - mengeluh "tidak ada tty sekarang dan tidak ada program askpass yang ditentukan"?serverb
atau Anda perlussh serverb
secara terpisah, kemudian jalankansudo ...
setelah login.Dengan SCP, Anda harus melakukannya dalam dua langkah, namun, Anda dapat melakukannya bersamaan dengan rsync sebagai berikut:
Catatan: Ini memang membutuhkan
NOPASSWD
konfigurasi sudo. Jika Anda harus memasukkan kata sandi untuk sudo, maka diperlukan dua langkah.Untuk menyalin direktori, Anda perlu menambahkan
-r
parameter. Dan-v
untuk keluaran verbose.Untuk menggunakan metode di atas dengan kredensial, Anda perlu menambahkannya ke
~/.ssh/config
file Anda , missumber
sudo: sorry, you must have a tty to run sudo
diperbaiki oleh-e "ssh -tt"
.-e "ssh -tt"
, saya mengertiprotocol version mismatch -- is your shell clean?
. Adakah petunjuk tentang cara memperbaikinya?Anda dapat menggunakan ssh dan tar untuk mengatasi ini:
Ini pertama kali memperbarui stempel waktu sudo Anda (meminta kata sandi jika perlu, yang memerlukan tty (
ssh -t
)), dan kemudian menggunakan sudo untuk membuat tarball dari jarak jauh dan mengekstraknya secara lokal."tar" pada RedHat 5 membutuhkan opsi "--preserve" untuk muncul setelah perintah "xpsf -".
sumber
tar: Invalid replacement string
, menghapus-s
tampaknya untuk memperbaikinya (tidak yakin apa yang Anda butuhkans
untuk itu). Terimakasih banyak; ini luar biasa.tty_tickets
harus dinonaktifkan, benar?Anda dapat menggunakan sftp dengan perintah sudo, misalnya:
sumber
Jika Anda perlu mengetikkan kata sandi untuk sudo setiap saat, Anda dapat menyimpannya ke file:
dan kemudian mengirimkannya bersama dengan file sumber.
Anda dapat menggunakan
tee
daripadasponge
jika Anda tidak memiliki lebih banyak util.sumber
Pertama, Anda perlu menyalin file ke tempat di mana Anda memiliki akses tulis tanpa sudo, Anda dapat melakukan dua langkah berikut.
Langkah 1:
scp filename newserver
Langkah 2:
ssh newserver sudo mv filename /path/to/the/destination
untuk informasi lebih lanjut baca tutorial scp
sumber
Ini akan menyalin file tertentu dari sumber ke / tmp / di server saat ini
sumber