None
Linux

vim: read-only Dateien mit root-Rechten speichern

by Viktor Garske on April 3, 2018, midnight

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:

:w !sudo tee %

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.

 

Author image
Viktor Garske

Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.

Comments (0)

Comments are not enabled for this entry.