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_resetsudoers
opsi diaktifkan. Ini menyebabkan perintah dieksekusi dengan lingkungan minimal yang mengandungTERM,PATH,HOME,SHELL,LOGNAME,USERdanUSERNAMEselain variabel dari proses pemanggilan
diizinkan olehenv_checkdanenv_keeppilihan 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_groupopsi tidak terpengaruh olehsecure_path. Opsi ini tidak
disetel secara default. -
sudo – menjalankan perintah sebagai pengguna lain