vim: read-only Dateien mit root-Rechten speichern

Linux-Admins werden es kennen: arbeitet man viel mit Konfigurationsdateien des Systems oder verschiedener Daemons, kann es passieren, dass man vergisst, sie als root-Benutzer zu öffnen.

Das ist ärgerlich, man muss die Änderungen kopieren, den Editor verlassen (vim: :q! ), ihn wieder mit u.U. sudo (shortcut hierfür: sudo !! zum aufrufen des letzten Kommandos mit root-Rechten) öffnen, Änderungen einfügen und neu abspeichern. Noch ärgerlicher ist es, wenn die Datei nicht bearbeitet, sondern erstellt werden soll und relativ umfangreich ist.

vim-Nutzer sind hier im Vorteil: der Editor ist so flexibel, dass man eine read-only-geöffnete Datei als root speichern kann.

Voraussetzung hierfür ist, dass sudo auf dem System installiert ist und der Nutzer die Berechtigungen hat, hiermit Kommandos auszuführen.

Nun zum Trick:

Die Zauberei hinter diesem Trick ist, dass vim “pipen” kann, denn anders als oft angenommen, ist :w nicht ausschließlich für das Speichern der Datei zuständig, sondern sendet eher den current buffer in die aktuelle Datei, eine andere Datei oder gar in ein anderes Kommando. Und dieses Kommando lässt sich eben auch per sudo ausführen. tee übrigens lässt sich wie ein T-Stück verstehen. Alle Hintergründe hierzu sind bei Stackoverflow erklärt.

Gefällt dir der Artikel? Dann empfiehl ihn weiter!
LESETIPP  Solved: Error 1698 (28000) in MySQL/MariaDB

Ein Gedanke zu „vim: read-only Dateien mit root-Rechten speichern“

  1. Wenn sudo nicht zur Verfügung steht, kann man die Datei auch unter anderem Namen wegspeichern (in ein Verzeichnis, wo man abspeichern darf)

    :w /pfad/dateiname

    Danach kann man die Datei als root zurückkopieren und ggf. den Besitzer mit chown anpassen. Ist umständlicher als dein Beispiel mit sudo, aber m.E. besser als die Kopieraktion mit der Maus 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.