Ich habe diese Frage gefunden , die erklärt, wie man eine Remote-Datei mit vim bearbeitet, indem man:
vim scp://user@myserver[:port]//path/to/file.txt
Ist es möglich, dies als root (via sudo
) auf dem Remote-Host zu tun ?
Ich habe versucht, eine Datei mit Root-Berechtigungen auf dem Remote-Host zu erstellen und mit den oben genannten zu bearbeiten. Vim kann den Inhalt sehen, bearbeiten und speichern, aber auf dem Remote-Host ändert sich nichts (wahrscheinlich, weil vim nur seine temporäre Datei speichert und diese dann an scp weitergibt, um sie zurückzusetzen?)
Wenn Sie dies mit einer von meinem Benutzer gespeicherten Datei tun, verhält es sich wie erwartet.
Mein SSH verwendet einen Schlüssel zur Authentifizierung und der Remote-Server verfügt über NOPASSWD für meinen Sudo-Zugriff
Diese Frage ist ähnlich, aber die einzige Antwort mit Stimmen verwendet Marionette, was definitiv nicht das ist, was ich verwenden möchte.
Bearbeiten: Als Antwort auf den Kommentar von @ drawbenn unten ist hier mein vollständiger Bearbeitungsprozess:
vim scp://nagios//tmp/notouch
Wo /tmp/notouch
sich die Datei im Besitz von root befindet, wird vim schnell angezeigt
:!scp -q 'nagios:/tmp/notouch' '/tmp/vaHhwTl/0'
Dies verschwindet automatisch und es entsteht ein leerer schwarzer Bildschirm mit dem Text
"/tmp/vaHhwTl/0" 1L, 12C
Press ENTER or type command to continue
Durch Drücken der Eingabetaste kann ich die Datei bearbeiten
Beim Speichern wird derselbe scp-Befehl wie am Anfang angezeigt, der schnell und automatisch verschwindet (es ist schwierig, ihn rechtzeitig zu lesen, aber die Dateien scp und / tmp / ... sind definitiv vorhanden).
.vimrc
Datei verwenden
ssh -t host sudo vim file
?
ssh
zum Server und bearbeiten Sie die Datei dort (mitvisudo
oder was auch immer). Alles andere hat Auswirkungen auf die Sicherheit.