このアイデアを使ってsudoと同等のものを実装できますか?

このアイデアを使ってsudoと同等のものを実装できますか?

sudo 実行可能ファイルには、root が所有する setuid ビットがあります。実行ファイルは2つのことを行います。

  1. ユーザーが許可されていることを確認する
  2. execve argv[1](医師コード)

通常、これにより一般ユーザーはrootとしてプログラムを実行できます。問題は、setuidが起動時にルートであるため、ユーザーが誰であるかわからないため、ユーザーが許可されていることを確認する方法です。

ベストアンサー1

問題は、setuidが起動時にルートであるため、ユーザーが誰であるかわからないため、ユーザーが許可されていることを確認する方法です。

ここでは、uidとEffective uidの概念が登場します。 setuidプログラムを実行すると、getuidそれでも「実際の」ユーザーのuidを返します。 setuid ビットは有効 uid を変更します。バラよりman getuidおよび関連文書の詳細。

おすすめ記事