GNU/Linux >> Znalost Linux >  >> Linux

Stát se rootem zevnitř Vimu?

Někdy začnu upravovat konfigurační soubory v /etc pomocí Vimu, ale zapomeňte použít sudo pro spuštění Vim. Nevyhnutelným výsledkem pak je, že po dokončení úprav narazím na obávané upozornění, že nemám oprávnění soubor uložit.

Většinou jsou úpravy tak malé, že prostě ukončím Vim a udělám to celé znovu jako root. Mohl bych samozřejmě uložit do umístění, kam mohu zapisovat, a poté zkopírovat jako root, ale to je také poněkud nepříjemné.

Ale jsem si jistý, že existuje jednodušší způsob, jak se stát rootem nebo použít sudo zevnitř Vimu, aniž byste museli zahodit změny. Pokud by metoda nespoléhala na sudo nastavení pro uživatele by bylo ještě lepší.

Přijatá odpověď:

sudo nemůže změnit efektivního uživatele existujícího procesu, vždy vytvoří nový proces, který má zvýšená oprávnění a původní shell není ovlivněn. Toto je základ návrhu UNIX. Nejčastěji jen uložím soubor do /tmp jako řešení. Pokud to opravdu chcete uložit přímo, můžete zkusit použít funkci Vimu, kde může soubor převést do jiného procesu. Zkuste uložit pomocí tohoto příkazu:

:w !sudo dd of=%

Vyzkoušeno a funguje. Vim vás poté požádá o opětovné načtení souboru, ale to není nutné:stačí stisknout o abyste zabránili opětovnému načtení a ztrátě historie vracení. Můžete to dokonce uložit do příkazu/funkce Vim nebo dokonce svázat s klávesou pro snadný přístup, ale nechám to jako cvičení na čtenáři.


Linux
  1. Jak fungují vnitřnosti sudo?

  2. Vim neběží uvnitř Tmux?

  3. Jaký je rozdíl mezi root a sudo?

  1. Jak upgradovat na Debian 11 z Debianu 10

  2. Jak spustit příkaz Vim z shellu?

  3. Sudo vs root; nějaké skutečné rozdíly?

  1. Rozdíl mezi uživatelem Sudo a uživatelem root?

  2. Jak zpětně zajistit, aby skript běžel jako root?

  3. Změnit root heslo pomocí Sudo, bez Su?