GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Von Vim aus Root werden?

Manchmal beginne ich mit der Bearbeitung von Konfigurationsdateien in /etc mit Vim, aber vergessen Sie, sudo zu verwenden um Vim zu starten. Das unvermeidliche Ergebnis ist dann, dass ich nach Abschluss meiner Bearbeitungen auf den gefürchteten Hinweis stoße, dass ich nicht die Berechtigung zum Speichern der Datei habe.

Meistens sind die Änderungen klein genug, dass ich Vim einfach beende und das Ganze als root erneut mache. Ich könnte natürlich an einem Ort speichern, an den ich schreiben kann und dann als root kopieren, aber das ist auch etwas nervig.

Aber ich bin mir sicher, dass es einen einfacheren Weg gibt, root zu werden oder sudo zu verwenden aus Vim heraus, ohne die Änderungen verwerfen zu müssen. Wenn die Methode nicht auf sudo angewiesen wäre noch besser wäre es, für den Benutzer eingerichtet zu werden.

Akzeptierte Antwort:

sudo kann den effektiven Benutzer eines vorhandenen Prozesses nicht ändern, es erstellt immer einen neuen Prozess mit erhöhten Rechten und die ursprüngliche Shell bleibt davon unberührt. Dies ist eine Grundlage des UNIX-Designs. Meistens speichere ich die Datei als Workaround einfach in /tmp. Wenn Sie es wirklich direkt speichern möchten, können Sie versuchen, eine Funktion von Vim zu verwenden, mit der eine Datei an einen anderen Prozess weitergeleitet werden kann. Versuchen Sie, mit diesem Befehl zu speichern:

:w !sudo dd of=%

Getestet und funktioniert. Vim fordert Sie dann auf, die Datei neu zu laden, aber das ist unnötig:Sie können einfach o drücken um ein erneutes Laden und den Verlust Ihres Undo-Verlaufs zu vermeiden. Sie können dies sogar in einem Vim-Befehl/einer Vim-Funktion speichern oder es für einen einfachen Zugriff sogar an eine Taste binden, aber ich überlasse das als Übung dem Leser.


Linux
  1. So aktualisieren Sie von Debian 10 auf Debian 11

  2. Wie funktionieren die Interna von Sudo?

  3. Root-Passwort per Sudo ändern, ohne Su?

  4. Speichern Sie die Datei als Root, nachdem Sie sie als Nicht-Root bearbeitet haben

  5. Wie führe ich den Vim-Befehl von der Shell aus?

So erstellen Sie ein Video aus Bildern unter Linux

Terminal immer als Root-Benutzer (sudo) in Ubuntu starten

Wie füge ich aus dem Puffer im Ex-Modus von vim ein?

Wo werden sudo-Vorfälle gemeldet?

Was ist der Unterschied zwischen root und sudo?

Führen Sie ifconfig ohne sudo aus