GNU/Linux >> Linux の 問題 >  >> Linux

Vimの内側からルートになりますか?

/etcで設定ファイルの編集を開始することがあります Vimを使用していますが、sudoの使用を忘れてください Vimを起動します。必然的な結果として、編集を終えた後、ファイルを保存する権限がないという恐ろしい通知に遭遇します。

ほとんどの場合、編集は十分に小さいので、Vimを終了して、rootとしてすべてをやり直します。もちろん、書き込み可能な場所に保存してからrootとしてコピーすることもできますが、それもやや面倒です。

ただし、rootになるか、sudoを使用する簡単な方法があると確信しています。 変更を破棄することなく、Vimの内部から。メソッドがsudoに依存しない場合 さらに良いユーザーのために設定されています。

承認された回答:

sudoは、既存のプロセスの有効なユーザーを変更できません。常に、昇格された特権を持つ新しいプロセスを作成し、元のシェルは影響を受けません。これはUNIX設計の基本です。ほとんどの場合、回避策としてファイルを/tmpに保存します。本当に直接保存したい場合は、ファイルを別のプロセスにパイプできるVimの機能を使用してみてください。次のコマンドで保存してみてください:

:w !sudo dd of=%

テストされ、動作します。 Vimはファイルをリロードするように要求しますが、それは不要です。 oを押すだけです。 再読み込みして元に戻る履歴が失われないようにするため。これをVimコマンド/関数に保存したり、簡単にアクセスできるようにキーにバインドしたりすることもできますが、これは読者の練習問題として残しておきます。


Linux
  1. sudoの内部はどのように機能しますか?

  2. VimがTmux内で実行されていませんか?

  3. Sudoユーザーとrootユーザーの違いは?

  1. SuなしでSudoによってrootパスワードを変更しますか?

  2. ターミナルをルートとして実行する方法は?

  3. 非ルートとして編集した後、ファイルをルートとして保存します

  1. Debian10からDebian11にアップグレードする方法

  2. 須藤対ルート;実際の違いはありますか?

  3. sudo su - は悪い習慣と見なされますか?