sudoがrootユーザーのパスを取得できない理由

sudoがrootユーザーのパスを取得できない理由

rootユーザーのPATH環境変数を変更しました。次のコマンドはパスも表示します。

 su
 env | grep ^PATH

パス=/root/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/opt/distrod/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin :/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/pierre/.nix-profile/bin

しかし、

 sudo env | grep ^PATH

パス=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


私が逃したものは何ですか?

書いてみるとわかる

sudo echo $PATH

ユーザーを変更する前にPATHがすでに評価されているため、機能しません。これはそれほど問題になるとは思わないが、他の考えはない。

ベストアンサー1

私が逃したものは何ですか?

このsudoは環境変数をクリーンアップし、明示的に許可された変数のみを渡します。

おすすめ記事