SUDO_USER は sudo のマニュアルで定義されていません。説明が良いでしょう。

SUDO_USER は sudo のマニュアルで定義されていません。説明が良いでしょう。

次の文は、sudoers マニュアルの最初に表示され、「SUDO_USER 環境変数」を参照しますが、マニュアルには定義されていません。

sudoがrootとして実行され、SUDO_USER環境変数が設定されている場合、sudoersポリシーはその値を使用して実際のユーザーが誰であるかを確認します。ユーザーは、ルートシェルが呼び出された場合でも、それを使用してsudoを介してコマンドを記録できます。また、sudo-runスクリプトまたはプログラムから呼び出された場合でも、-eオプションはまだ役に立ちます。ただし、sudoers ルックアップは、SUDO_USER で指定されたユーザーではなく root に対しても実行されます。

この全体の段落はまだ私にとって非常に理解するのが難しいです。どんな説明でもいただきありがとうございます。たとえば、sudoersポリシーがSUDO_USER環境変数を使用してユーザーが実際に誰であるかを確認するのはどういう意味ですか?

この文章も理解しにくいです。

ユーザーは、ルートシェルが呼び出された場合でも、それを使用してsudoを介してコマンドを記録できます。

答え1

SUDO_USERに記録man sudo(いいえsudoers):

SUDO_USER        Set to the login name of the user who invoked sudo.

つまり、実行するとsudo sh -c 'echo $SUDO_USER'効果が得られる迂回的な方法ですwhoami

sudoユーザーがそれを介してコマンドを実行(または実行しようとした)ときに記録されます。journalctl /usr/bin/sudoあなたのシステムについて、またはそれに対応するものを使用してリストすることができます。各呼び出しのユーザー名とコマンドが一覧表示されます。

sudo1)rootとして実行し、2)セットとして実行する場合、SUDO_USERログエントリSUDO_USERには「root」の代わりにユーザー名タグが付けられます。これにより、(協力する)ユーザーは、無制限の環境にあっても子孫のために実行されるコマンドを記録できます。 root権限なしでコマンドを実行できるため、sudoroot権限で実行すると(設定で無効になっていない限り)、常に成功します。root_sudo

これが起こり得る2つの主な方法があります。 1つ目は、明らかなもの、sudo bashそれに相当するもの、物事を記録したいという願望です。別のユースケースは、ユーザーに代わって実行された実際の操作を記録できるスクリプトです。これはセキュリティ問題ではなく情報行為です。

sudo -eman sudoファイルの編集に使用され、安全な編集動作にも記載されているさまざまなセキュリティポリシーセットを使用してください。人々は時々これらの機能を使用するためにrootとしてログインしてそれを使用し、上記とSUDO_USER同じ対話をします。

関連情報