なぜ sudo は fakeroot で実行できるのでしょうか?

なぜ sudo は fakeroot で実行できるのでしょうか?

次のスニペットをご覧ください。

fakeroot -- sudo cat /etc/shadow

これにより、 の内容が出力されます/etc/shadowが、 fakeroot で sudo を実行すると、その目的全体が台無しになるのではないでしょうか。それとも、何か見落としているのでしょうか。

答え1

フェイクルート 通常はパッケージのビルドのために root になる必要性を排除するために、偽の root 環境を提供します。

Fakeroot は、ファイル操作のためのルート権限を持っているように見える環境でコマンドを実行します。

したがってsudo、呼び出し元がすでにルート権限を持っていると判断されるため、これは null 操作になります。したがって、パスワードは必要ありません。

Sudoers マニュアル この規則には例外があります:

sudo が root によって実行され、SUDO_USER 環境変数が設定されている場合、sudoers ポリシーはこの値を使用して実際のユーザーが誰であるかを判断します。これにより、ユーザーは、root シェルが呼び出された場合でも、sudo を介してコマンドをログに記録できます。

パラメータ付きで呼び出された場合sudo、通常の効果が得られます。

関連情報