sudo 実行可能ファイルには、root が所有する setuid ビットがあります。実行ファイルは2つのことを行います。
- ユーザーが許可されていることを確認する
execve argv[1]
(医師コード)
通常、これにより一般ユーザーはrootとしてプログラムを実行できます。問題は、setuidが起動時にルートであるため、ユーザーが誰であるかわからないため、ユーザーが許可されていることを確認する方法です。
ベストアンサー1
問題は、setuidが起動時にルートであるため、ユーザーが誰であるかわからないため、ユーザーが許可されていることを確認する方法です。
ここでは、uidとEffective uidの概念が登場します。 setuidプログラムを実行すると、getuid
それでも「実際の」ユーザーのuidを返します。 setuid ビットは有効 uid を変更します。バラよりman getuid
および関連文書の詳細。