実行すると、sudo which abc
スーパーユーザー$ PATHで "abc"プログラムを検索すると予想されますが、サブセットのみを検索しているようです。
sudo echo $PATH
検索されたパスを実行して比較すると、これがわかります。
$ sudo which abc
which: no abc in (/sbin:/bin:/usr/sbin:/usr/bin)
$ sudo echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin
ここで何が起こっているのでしょうか?
答え1
$PATH
sudo
実行する前に拡張してください。したがって、あなたが見るのは、あなたPATH
がsudoするユーザーの価値ではなく、あなたの価値です。
この試み:
$ sudo bash -c 'echo $PATH'