Di fedora VM saya, saat menjalankan dengan akun pengguna saya, saya memiliki /usr/local/bin di jalan saya:
[[email protected] ~]$ 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
Begitu juga saat menjalankan su :
[[email protected] ~]$ su -
Password:
[[email protected] 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
Namun, saat dijalankan melalui sudo , direktori ini tidak berada di jalur:
[[email protected] justin]# exit
[[email protected] ~]$ sudo bash
[[email protected] ~]# env | grep PATH
PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/sbin:/bin:/usr/sbin:/usr/bin
Mengapa jalurnya berbeda saat dijalankan melalui sudo ?
Jawaban yang Diterima:
Lihat /etc/sudoers . File default di Fedora (serta di RHEL, dan juga Ubuntu dan sejenisnya) menyertakan baris ini:
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
Yang memastikan bahwa jalur Anda bersih saat menjalankan binari di bawah Sudo. Ini membantu melindungi dari beberapa masalah yang disebutkan dalam pertanyaan ini. Juga nyaman jika Anda tidak memiliki /sbin dan /usr/sbin di jalan Anda sendiri.