Ketika menjalankan aplikasi atau mengeksekusi perintah di Linux, terkadang aplikasi tersebut memerlukan environment variable milik user agar dapat berjalan dengan normal.
Namun, masalah sering muncul ketika perintah tersebut dijalankan menggunakan sudo. Secara default, sudo akan menggunakan environment yang berbeda sehingga beberapa environment variable milik user tidak ikut terbawa. Hal ini dapat menyebabkan aplikasi mengalami error.
Pada tutorial ini akan dijelaskan cara mempertahankan environment variable milik user agar tetap tersedia saat menggunakan sudo.
Cara 1: Menggunakan -E atau --preserve-env
#
Opsi -E pada sudo digunakan untuk mempertahankan environment variable yang ada pada user saat ini.
export HTTP_PROXY=foof
sudo -E bash -c 'echo $HTTP_PROXY'
Output yang dihasilkan:
foof
Artinya, nilai HTTP_PROXY dari user tetap terbawa saat menjalankan perintah dengan sudo.
Cara 2: Menambahkan Environment Variable ke sudoers
#
Cara lain adalah dengan menambahkan environment variable yang ingin dipertahankan ke dalam konfigurasi sudoers.
Edit konfigurasi menggunakan perintah:
sudo visudo
Kemudian tambahkan baris berikut:
Defaults env_keep += "http_proxy"
Defaults env_keep += "https_proxy"
Defaults env_keep += "HTTP_PROXY"
Defaults env_keep += "HTTPS_PROXY"
Dengan konfigurasi ini, environment variable tersebut akan tetap tersedia ketika menjalankan perintah menggunakan sudo.