$ ls -l /usr/bin/sudo
-rwsr-xr-x 1 root root 136808 Jul 4 2017 /usr/bin/sudo
soはすべてのユーザーが実行でき、set-user-idビットが設定されているため、sudo
これを実行しているすべてのユーザーはプロセスの有効なユーザーIDとしてルートを持ちます。sudo
/usr/bin/sudo
~からhttps://unix.stackexchange.com/a/11287/674
sudoとsuの最も明白な違いは次のとおりです。sudoにはユーザーパスワードが必要ですsuにはrootのパスワードが必要です。
どのユーザーのパスワードを要求していますか
sudo
?プロセスの実際のユーザーIDで表示されるユーザーですか?それでは、すべてのユーザーが
sudo
自分のパスワードを実行して提供してスーパーユーザー権限を取得できますか? Linuxで特定のユーザーを制限できますか?sudo
入力に必要なパスワードは正しいですか?後ろにexecve()
実行を開始しますmain()
か?/usr/bin/sudo
これでプロセスのeuidがrootに変更されたので(/ usr / bin / sudoのset-user-idビットが設定されているので)、後でsudoにパスワードを尋ねるのはなぜですか?
ありがとうございます。
私が読んでhttps://unix.stackexchange.com/a/80350/674しかし、上記の質問に対する答えではありません。
ベストアンサー1
最も一般的な構成では、
sudo
ユーザーにパスワードを入力するように求められます。走るsudo
(あなたが言うように、プロセスの実際のユーザーIDに対応するユーザーです。)重要な点は、ユーザーが自分の認証以外の追加認証を提供することなく、特定のユーザーに追加の権限(の構成sudo
によって決定されます)を付与することです。sudoers
しかし、sudo
する実行中のユーザーがsudo
実際に自分が主張している人であることを確認してください。パスワード(または通常はPAMを使用してユーザーに設定された認証メカニズムsudo
- 指紋や2段階認証などを含めることができます)を要求してこれを行います。sudo
必ずしもルート権限を付与するわけではなく、さまざまな権限を付与できます。ルートが許可されているすべてのユーザーは、自分sudoers
の認証のみを使用してこれを実行できます。ユーザーは許可されていません(少なくとも許可されていませんsudo
)。これはLinux自体では適用されませんが、sudo
Linux(および対応する認証設定)では適用されます。sudo
実行を開始した後、パスワードを求めます。そうでなければできません(つまりそれは何もできません。今後実行を開始します)。sudo
パスワードを要求する目的(rootユーザーでも)は、実行中のユーザー(通常の構成で)のIDを認証することです。