プロセスを作成したユーザーを識別する実際のユーザーIDはありますか?

プロセスを作成したユーザーを識別する実際のユーザーIDはありますか?

このセクションによるとプロセスの役割glibc マニュアル:

A process also has a real user ID which identifies the user who created the process ...

これを確認するために、次のコマンドを実行しました。

ps -eo cmd,ruid,euid | grep 'bash\|login'

これにより、次のように表示されます(lgdアカウントのuidは1000です)。

login --lgd              0      0
-bash                 1000   1000

bashlogin作成者がrootユーザーに属しているので、値が0のruidが0ではないのはなぜですか?私が間違って理解したのか、それともloginbashのruidを変更するのと同じ関数を呼び出すのですか?setuid()

答え1

login実行する前にユーザーIDを変更しましたbash。シャドウの実装では、次のことがわかります。ここ、その前にはより多くの設定がありますシェルが起動しました

引用したリンクに記載されている役割の違いは、実際にはsetuidプログラムに関連しています。コピーを作成しidてsetuidに設定すると、他の値id -uid -ru表示されます。後者がプロセスを開始したユーザー ID。

関連情報