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

sudoedit:なぜ sudo vi で使用するのですか?

まったく関係のないものを探しているときにこの質問に出くわしましたが、これまでまったく言及されていなかった次の重要な違いを追加すると思いました:sudoedit はエディターをルートとして実行しません。

$ sudo vim /etc/farts.conf 

vim をルートとして実行するだけで、ファイルを読み取れるようになります。欠点は、エディターが root としても実行され、何でもできるようになったことです。ユーザーに構成ファイルの編集だけを許可したい場合は、残念ながら root を与えただけです。 システム全体で。 :sh を使用してvimからシェルを生成することを妨げるものは何もありません または :!command 、これらはサブプロセスであるため、root としても実行されます。

一方、

$ sudoedit /etc/farts.conf

実際には動作が異なります。 /tmp に一意の名前のコピーを作成し、パーミッションを自分のユーザーのみにロックダウンし、そのコピーに対して root 権限なしでエディターを通常どおり起動します。

エディターを終了すると、一時ファイルと元のファイルが比較され、元のファイルが変更されていれば、元のファイルが編集内容に安全に置き換えられます。

このシナリオでは、ユーザーがシステム ファイルを編集できるようにすることはできますが、ルートとしてランダム バイナリを実行したり、ファイル システムのどこにでもアクセスしたりすることはできません。

それは主に実際の違いであり、言及されている残りは単なる副作用です.


まず、sudo vim $EDITOR で定義されている場合は必要ありません。 . sudoedit 何かを編集するたびにエディターを定義する必要がなくなります。また、マルチユーザー システムでは、誰もが個人的に好きなエディターを使用できます。

どうして?通常のユーザーが sudo しか得られないシステムを考えてみましょう 特定のファイルを編集するための特権。 sudo の実行が制限されています しかし、他のものと。 sudo vi を許可する必要があります と sudo vim そして sudo nano および sudo emacssudo pico (など)。そうする代わりに、単純に sudoedit を許可することができます。 $EDITOR の設定を選択したファイル 彼らが好きなものに。 (Emacs 愛好家に Vim の使用を強制すると想像してみてください…)

別の問題は、あなたの $EDITOR vim に設定されています 、ユーザーの .vimrc にカスタマイズ設定があります sudo vim を使用すると、これらの設定は使用されません または sudo $EDITOR . sudoedit ただし、呼び出し元のユーザーの環境、つまり設定は保持されます。

関連項目:sudoedit の優れている点は何ですか?


Linux
  1. sudoがエイリアスを無視するのはなぜですか?

  2. BashスクリプトでCdを使用できないのはなぜですか?

  3. sudoedit:コマンドが見つかりません

  1. SSH 経由でデバイスを使用しますか?

  2. なぜsudoを使用する必要があるのですか?

  3. su だけでなく su - を使用するのはなぜですか?

  1. Linuxを使用してヨガスタジオを管理する理由

  2. Linux –なぜSuだけでなくSuを使用するのですか?

  3. core_pattern の編集が制限されているのはなぜですか?