sudoコマンドは一時的に$ PATHをルートパスに変更しますか?

sudoコマンドは一時的に$ PATHをルートパスに変更しますか?
  1. ユーザーログインセッションで実行すると、実行中にrootにsudo <command>変更されますか?$PATH$PATHsudo <command>
  2. ルートではなく<command>ユーザーに依存している場合、ユーザーはどのようにこれを正常に実行できますか?$PATH$PATHsudo <command>

ベストアンサー1

ユーザーログインセッションでsudoを実行すると、sudoの実行中に$ PATHがrootの$ PATHに変わりますか?

sudo$PATHセキュリティポリシーによって変数が変更されます。 ~からsudo マニュアルページ:

PATH
    May be overridden by the security policy.

ほとんどのシステムでは、このオプションはデフォルトで有効になっているため、env_resetsudoersオプションで許可されている呼び出しプロセスの変数を含む最小環境でコマンドが実行されます。TERMPATHHOMESHELLLOGNAMEUSERUSERNAMEenv_checkenv_keep

セキュリティ上の理由から、オプションで金庫を次のように設定/etc/sudoersできます。secure_pathPATHsudo

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

rootの$ PATHではなく、ユーザーの$ PATHに依存している場合、ユーザーはどのようにsudoを正常に実行できますか?

PATH実行時にユーザーの情報を保持できるからですsudo。いつでも次のことができます。

sudo env "PATH=$PATH" <command>

おすすめ記事