「NOPASSWD:ALL」が/ etc / sudoersに書き込まれていないにもかかわらず、ルートが「sudo」を実行するためにパスワードを必要としないのはなぜですか?

「NOPASSWD:ALL」が/ etc / sudoersに書き込まれていないにもかかわらず、ルートが「sudo」を実行するためにパスワードを必要としないのはなぜですか?

、常に以下があります/etc/sudoers

root    ALL=(ALL:ALL) ALL

ただし、rootユーザー(UID 0)は、実行時にパスワードを必要としませんsudo command

NOPASSWD他のユーザーの場合、エントリに次のエントリが含まれているか、以前の認証がタイムアウトしていない場合を除き、パスワードが必要です。

user    ALL=(ALL:ALL) NOPASSWD:ALL
                      ^^^^^^^^

答え1

sudo設定された方法に応じて、ユーザーがUID 0(または他のユーザー)でコマンドを実行できるようにします。 UID 0 はすでに UID 0 なので、ルートにパスワードを要求せずに UID 0 でコマンドを実行できます。

また、ルートは誰にでもアクセスできるため、suUID 0で実行するときにパスワードの入力を求める必要はありません。sudo -u user

注:ルートを使用する必要があるPAM設定もあると思いますsu

答え2

それでも興味深い不一致です。ルートにはCAP_SETUID次の機能があるため、ルートを停止する必要がないため、CAP_SETGIDsudoは必要ありません。欲しいものは何でもできます。

チェックしているのが機能ではなくルートである場合は、潜在的なバグがある可能性sudoがあります。機能のないルートはアップグレードできます(コードを表示したりテストしたりしないとわかりません)。

関連情報