私のsudo PATHが通常のユーザーPATHと異なるのはなぜですか? [コピー]

私のsudo PATHが通常のユーザーPATHと異なるのはなぜですか? [コピー]

私の道に問題があります。クリーンなAmazon Linux仮想サーバーインスタンスがあり、/etc/profileに設定しました。

M3_HOME=/usr/local/maven
JAVA_HOME=/usr/java/latest
PATH="$PATH:$M3_HOME/bin:$JAVA_HOME/bin"

私のmyuser(私のユーザー)アカウントで〜/ .bash_profileに設定しました。

PATH=$PATH:$HOME/bin

その後、ユーザーとして「env」を出力すると、次のような結果が表示されます。

PATH=/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/maven/bin:/usr/java/latest/bin:/home/myuser/bin

しかし、sudoに出力すると

sudo env
PATH=/sbin:/bin:/usr/sbin:/usr/bin

sudo ユーザーに通常のユーザーと同じパスを使用させるにはどうすればよいですか?

答え1

sudoをすると、異なる環境を持つ別のユーザーであるrootに昇格されるからです。

--preserve-env オプションを使用して、同じ環境変数を保持できます。

これはsudoのマニュアルページから直接インポートされ、私のLinuxボックスのbashで確認されます。以下は同じ出力を提供します

env | grep PATH

sudo --preserve-env=PATH env | grep PATH 

マニュアルページを確認してください。

関連情報