継承環境におけるsudoとsuの違い

継承環境におけるsudoとsuの違い
  1. sudo親シェルプロセスから環境を継承してコマンドを実行できますが、sudo surootユーザー以降のシェルプロセスは実行できないのはなぜですか?

    t@ocean:/tmp$ export ME=tim
    t@ocean:/tmp$ sudo echo $ME
    tim
    
    t@ocean:/tmp$ sudo su
    root@ocean:/tmp# echo $ME
    
    root@ocean:/tmp# exit
    
  2. 環境は親プロセスから子プロセスに継承されますか?

  3. sudo surootユーザーの後のシェルプロセスは、古いユーザーのシェルプロセスのサブプロセスですか?

ありがとうございます。

ベストアンサー1

環境変数の拡張はシェルで行われるため、実際に実行するコマンドは「sudo echo tim」です。これらのタスクはすべてsudoが実行される前に完了します。

おすすめ記事