GNU/Linux >> Belajar Linux >  >> Linux

Mengapa Variabel Path Berbeda Saat Menjalankan Via Sudo Dan Su?

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.


Linux
  1. Buat File Sebagai Pengguna Dan Grup Yang Berbeda?

  2. Kapan Dan Mengapa Saya Harus Menggunakan Pembaruan Apt-get?

  3. Variabel Lingkungan Pengguna Dengan "su" dan "sudo" di Linux

  1. Bagaimana menjaga variabel lingkungan saat menggunakan sudo

  2. Apa perbedaan antara root dan sudo?

  3. Mengapa kata sandi 'sudo' berbeda dengan kata sandi 'su root'

  1. Mengapa nomor panggilan sistem Linux di x86 dan x86_64 berbeda?

  2. Penerusan IP =kapan dan mengapa ini diperlukan?

  3. perintah linux ditemukan tetapi tidak ditemukan saat menggunakan sudo