Memperbarui:
Mengatur variabel lingkungan global harus tetap dilakukan /etc/environment
, tetapi seperti yang Anda tunjukkan, penggunaan sudo -s
memiliki pengaruh variabel-variabel ini "menghilang".
Alasannya adalah sudo
memiliki kebijakan mengatur ulang Lingkungan dan menetapkan jalur yang aman . Ini diaktifkan secara default:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Jadi apa pun yang diatur dalam /etc/environment
untuk jalan ditimpa oleh sudo
.
Halaman manual untuk sudoers
status:
env_reset If set, sudo will reset the environment to only contain
the LOGNAME, MAIL, SHELL, USER, USERNAME and the SUDO_*
variables. Any variables in the caller's environment
that match the env_keep and env_check lists are then
added. The default contents of the env_keep and
env_check lists are displayed when sudo is run by root
with the -V option. If the secure_path option is set,
its value will be used for the PATH environment
variable. This flag is on by default.
Sebagai solusinya, Anda bisa menggunakan sudo su
shell yang akan memberikan hak akses root tetapi mengandung PATH yang tepat.
Jawaban Asli
Anda harus mengaturnya /etc/environment
.
Coba sudo YOUR_TEXT_EDITOR /etc/environment
(pastikan untuk membuat cadangan terlebih dahulu).
Untuk informasi lebih lanjut: Variabel Environment
Variabel lingkungan sistem-lebar
Pengaturan variabel lingkungan yang memengaruhi sistem secara keseluruhan (alih-alih hanya pengguna tertentu) tidak boleh ditempatkan di salah satu dari banyak skrip level sistem yang dijalankan ketika sistem atau sesi desktop dimuat, tetapi ke dalam
/etc/environment
- File ini secara khusus dimaksudkan untuk pengaturan variabel lingkungan sistem-lebar. Ini bukan file skrip, melainkan terdiri dari ekspresi penugasan, satu per baris. Secara khusus, file ini menyimpan pengaturan lokal dan jalur sistem.
Tidak direkomendasikan:
/etc/profile
- File ini dijalankan setiap kali shell login bash dimasukkan (mis. Ketika masuk dari konsol atau lebih dari ssh), serta oleh DisplayManager ketika sesi desktop dimuat. Ini mungkin file yang akan Anda rujuk ketika menanyakan administrator sistem UNIX veteran tentang variabel lingkungan. Di Ubuntu, bagaimanapun, file ini tidak lebih dari memanggil file /etc/bash.bashrc.
/etc/bash.bashrc
- Ini adalah versi seluruh sistem dari file ~ / .bashrc. Ubuntu secara default dikonfigurasi untuk mengeksekusi file ini setiap kali pengguna memasukkan shell atau lingkungan desktop.