Saya menginstal Eclipse di direktori home saya, dan meletakkan jalurnya di PATH
di ~/.profile
.
Jadi ini bekerja dengan
$ eclipse
Tetapi ketika memanggilnya dengan sudo
, eclipse
tidak ditemukan:
$ sudo eclipse
sudo: eclipse: command not found
PATH
. yang mana apakah sudo eclipse
gunakan untuk mencari eclipse
? Apakah pengguna root
PATH
?
Terima kasih.
Jawaban yang Diterima:
sudo
secara default menggunakan minimal PATH
, agar aman digunakan oleh root pengguna. Itu belum tentu sama dengan PATH
yang akan Anda dapatkan dengan masuk sebagai root pengguna, atau dengan melakukan
sudo su -
Misalnya, dalam rilis Red Hat yang lebih baru, saya perhatikan bahwa jalur tersebut menghilangkan /usr/local/bin
.
Halaman manual meringkas ini dalam bagian berjudul Catatan Keamanan :
sudo mencoba aman saat menjalankan perintah eksternal.
Ada dua cara berbeda untuk menangani variabel lingkungan. Secara default,
env_reset
sudoers
opsi diaktifkan. Ini menyebabkan perintah dieksekusi dengan lingkungan minimal yang mengandungTERM
,PATH
,HOME
,SHELL
,LOGNAME
,USER
danUSERNAME
selain variabel dari proses pemanggilan
diizinkan olehenv_check
danenv_keep
pilihan sudoers. Ada daftar putih yang efektif untuk
variabel lingkungan.
Bacaan lebih lanjut:
-
sudoers – daftar pengguna mana yang dapat menjalankan apa
secure_path
Jalur yang digunakan untuk setiap perintah yang dijalankan dari sudo. Jika Anda tidak mempercayai orang yang menjalankan Sudo untuk
memiliki variabel lingkungan PATH yang waras, Anda mungkin ingin menggunakan ini. Kegunaan lain adalah jika Anda
ingin membuat "jalur root" terpisah dari "jalur pengguna". Pengguna dalam grup
yang ditentukan olehexempt_group
opsi tidak terpengaruh olehsecure_path
. Opsi ini tidak
disetel secara default. -
sudo – menjalankan perintah sebagai pengguna lain