Saya telah menemukan pertanyaan ini yang menjelaskan cara mengedit file jarak jauh dengan vim menggunakan:
vim scp://user@myserver[:port]//path/to/file.txt
Apakah mungkin untuk melakukan ini sebagai root (via sudo
) pada host jarak jauh?
Saya sudah mencoba membuat file dengan izin root pada host jarak jauh dan mengeditnya dengan di atas. Vim dapat melihat konten, dapat mengeditnya, dan dapat menyimpannya tetapi tidak ada perubahan pada host jarak jauh (mungkin karena vim hanya menyimpan file temp-nya dan kemudian memberikannya ke scp untuk dimasukkan kembali?)
Ketika melakukan ini dengan file yang disimpan oleh pengguna saya berperilaku seperti yang diharapkan.
SSH saya menggunakan kunci untuk otentikasi dan server jauh memiliki NOPASSWD untuk akses sudo saya
Pertanyaan ini mirip, tetapi satu-satunya jawaban dengan suara menggunakan boneka yang jelas bukan yang ingin saya gunakan.
Sunting: Menanggapi komentar @ drewbenn di bawah ini, inilah proses lengkap saya untuk mengedit:
vim scp://nagios//tmp/notouch
Di mana /tmp/notouch
file yang dimiliki oleh root, saya melihat vim dengan cepat ditampilkan
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
Ini hilang secara otomatis untuk menghasilkan layar hitam kosong dengan teks
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
Menekan enter memungkinkan saya untuk mengedit file
Menyimpan muncul jenis yang sama dari perintah scp sebagai awal, yang dengan cepat dan otomatis hilang (sulit untuk membacanya tepat waktu tetapi file scp dan / tmp / ... sudah pasti ada)
.vimrc
file saya
ssh -t host sudo vim file
?
ssh
ke server dan edit file di sana (denganvisudo
, atau apa pun). Yang lain memiliki implikasi keamanan.