sudoとsuを介して実行するときにPATH変数が異なるのはなぜですか?

sudoとsuを介して実行するときにPATH変数が異なるのはなぜですか?

私のFedora VMで私のユーザーアカウントとして実行するとき、私のパス/usr/local/binには次のものがあります。

[justin@justin-fedora12 ~]$ env | grep PATH
 PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin

ランタイムにも同じですsu

[justin@justin-fedora12 ~]$ su -
Password: 
[root@justin-fedora12 justin]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/justin/bin

ただし、経由で実行すると、sudoディレクトリは次のパスにありません。

[root@justin-fedora12 justin]# exit
[justin@justin-fedora12 ~]$ sudo bash
[root@justin-fedora12 ~]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin

で実行するときにパスが異なるのはなぜですかsudo

ベストアンサー1

見てください/etc/sudoers。 Fedora(およびRHEL、Ubuntuなど)のデフォルトファイルには、次の行が含まれています。

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

これにより、sudoでバイナリを実行してもパスがきれいになります。これはいくつかの問題を避けるのに役立ちます。この質問で言及されている。これは、1つもなく、独自の方法で行う場合/sbinにも/usr/sbin便利です。

おすすめ記事