Ho trovato questa domanda che spiega come modificare un file remoto con vim usando:
vim scp://user@myserver[:port]//path/to/file.txt
È possibile farlo come root (via sudo
) sull'host remoto?
Ho provato a creare un file con permessi di root sull'host remoto e modificarlo con quanto sopra. Vim può vedere il contenuto, modificarlo e salvarlo ma nulla cambia sull'host remoto (probabilmente perché vim sta semplicemente salvando il suo file temporaneo e lo sta dando a scp per rimetterlo?)
Quando lo fa con un file salvato dal mio utente, si comporta come previsto.
Il mio SSH utilizza una chiave per l'autenticazione e il server remoto ha NOPASSWD per il mio accesso sudo
Questa domanda è simile, ma l'unica risposta con i voti usa il burattino che non è sicuramente quello che voglio usare.
Modifica: in risposta al commento di @ drewbenn di seguito, ecco il mio processo completo per la modifica:
vim scp://nagios//tmp/notouch
Dov'è /tmp/notouch
il file di proprietà di root, vedo vim mostrare rapidamente
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
Questo scompare automaticamente per produrre uno schermo nero vuoto con il testo
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
Premendo Invio mi permette di modificare il file
Il salvataggio fa apparire lo stesso tipo di comando scp dell'inizio, che scompare rapidamente e automaticamente (è difficile leggerlo in tempo ma i file scp e / tmp / ... sono sicuramente lì)
.vimrc
file
ssh -t host sudo vim file
?
ssh
sul server e modifica il file lì (convisudo
o qualsiasi altra cosa). Qualsiasi altra cosa ha implicazioni per la sicurezza.