次の文は、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
あなたのシステムについて、またはそれに対応するものを使用してリストすることができます。各呼び出しのユーザー名とコマンドが一覧表示されます。
sudo
1)rootとして実行し、2)セットとして実行する場合、SUDO_USER
ログエントリSUDO_USER
には「root」の代わりにユーザー名タグが付けられます。これにより、(協力する)ユーザーは、無制限の環境にあっても子孫のために実行されるコマンドを記録できます。 root権限なしでコマンドを実行できるため、sudo
root権限で実行すると(設定で無効になっていない限り)、常に成功します。root_sudo
これが起こり得る2つの主な方法があります。 1つ目は、明らかなもの、sudo bash
それに相当するもの、物事を記録したいという願望です。別のユースケースは、ユーザーに代わって実行された実際の操作を記録できるスクリプトです。これはセキュリティ問題ではなく情報行為です。
sudo -e
man sudo
ファイルの編集に使用され、安全な編集動作にも記載されているさまざまなセキュリティポリシーセットを使用してください。人々は時々これらの機能を使用するためにrootとしてログインしてそれを使用し、上記とSUDO_USER
同じ対話をします。