代わりに、新しいユーザーIDで新しいシェルプロセスを開始します。元のシェルは、新しいシェルが完了してsuが終了するまでブロックされます。なぜですか?
ベストアンサー1
簡単です。なぜならできないからです。他のプロセスのuidを変更するためのシステムコールはありません。親シェルが終了するのを待たない場合は、組み込みコマンドをsu
前に追加してください。exec
これにより、最初に分岐せずにシェルが直接実行されます。もちろん、間違ったパスワードを入力すると、返すシェルがないため、セッションは終了します。