Skip to main content
  1. Posts/

Environment Variable Hilang Saat Menggunakan sudo

·1 min·
Table of Contents

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.

Related