util-linux runuser(su) がフォークされるのはなぜですか?

util-linux runuser(su) がフォークされるのはなぜですか?

runuserutil-linux(ルートから起動したときにのみ実行される他のエントリポイント)を使用すると、次のsuプロセスツリーが表示されます。

[root] runuser -u username sometool
  \- [username] sometool

exec単に権限を放棄してターゲットにアクセスするのではなく、この親プロセスを維持する目的は何ですか?

ベストアンサー1

マンページに見られるように:

--session-command=command -c と同じですが、新しいセッションを作成しません(推奨されません)。

したがって、新しいセッションには新しいPIDが必要であるため、デフォルトの呼び出しには新しいプロセスを作成する必要があります。

また、戻りコードは、プロセスを終了した終了ステータスまたはシグナルによって異なります。最後のポイントでは、子プロセスの状態を監視するプロセスも必要です。

私はこれが意図的に設計されていると思います。 IMOとは異なり、suスクリプトrunuserで使用されます(したがって、パスワードを要求せずにエラー状態をよりよく処理し、シグナル処理(新しいセッション)を呼び出し元から切り離します。

おすすめ記事