/etc/sudoers
には、常に次のものが含まれます。
root ALL=(ALL:ALL) ALL
ただし、rootユーザー(UID 0)は、Sudo command
を実行するときにパスワードを入力する必要はありません。
他のユーザーの場合、エントリにNOPASSWD
が含まれていないか、以前の認証がタイムアウトしていない限り、パスワードが必要です。
user ALL=(ALL:ALL) NOPASSWD:ALL
^^^^^^^^
Sudo
を使用すると、ユーザーは構成方法に基づいてUID 0(または他のユーザー)としてコマンドを実行できます。すでにUID 0であるため、コマンドをUID 0として実行するためにrootにパスワードを要求する必要はありません。
さらに、rootは任意のユーザーにsu
することもできるため、Sudo -u user
をUID 0として実行するときにパスワードの入力を求める必要はありません。
注:su
を使用する場合、ターゲットユーザーのパスワードを提供するためにrootを必要とするPAM設定があると思います。
これは興味深い矛盾ですが。 rootにはCAP_SETUID
およびCAP_SETGID
の機能があるため、Sudoは必要ないため、rootを停止しても意味がありません。何でもやりたいことができます。
Sudo
がルートをチェックしていて、これらの機能をチェックしていない場合は、潜在的なバグがある可能性があります。機能のないルートがエスカレートする可能性があります(コードを調べたりテストしたりしていないことはわかりません)。