visudo が他のエディターを推奨しないのはなぜですか?

visudo が他のエディターを推奨しないのはなぜですか?

man visudovisudo は (デフォルトでは)環境変数をEDITOR使用しないことを説明します。VISUAL

それは次のように述べている

「visudo が使用するエディタがシェル エスケープを許可している場合、ユーザーがルート シェルを取得するのを防ぐ簡単な方法はありません。」

いま、私はセキュリティリスクがどこにあるのか混乱しています。

  • visudoを使用して編集できるのはrootのみです/etc/sudoers
  • ルートの環境変数を変更できるのはルートのみです
  • ルートにはすでにルートシェルがあります

おそらく、これが当てはまらないユースケースもあるでしょうが、私には思いつきません。

答え1

visudo厳密に言えば、任意のエディターを実行することで追加のセキュリティ リスクが発生するとは思いません。 実行しているユーザーにはvisudo、すでに編集権限があるため、システム上の他のコマンドの実行を許可するルールを追加できます。 そのため、どのエディターが実行されているかに関係なく、新しい sudo ルールを追加することで、間接的に何でも実行できる/etc/sudoersユーザーです。visudo

EDITORドキュメント内のおよび環境変数に関するアドバイスは、VISUALsudo の標準ログをバイパスしながらルート シェル (または任意のコマンド) を実行することについてのものだと思います。デフォルトでは、sudo は成功した認証と失敗した認証をすべて syslog に記録します。これにより、システム管理者は、どのユーザーが sudo を介してどのコマンドを実行しているかに関する監査証跡を取得できます。ユーザーが/etc/sudoersで変更した場合visudo、チェックサムを計算するか、ファイルを確認することで確認できます。ただし、ユーザーが を介してルート シェルを取得できる場合visudo、監査証跡なしで任意のコマンドを実行できます。

したがって、セキュリティ リスクは実行権限を付与する場合と同じですsudo bash。つまり、その権限を持つユーザーは、ルート シェルを取得して、制限や実行されるコマンドのログ記録なしに任意のコードを実行できます。

関連情報