Untuk membuat variabel lingkungan persisten, saya menambahkan file skrip ke direktori /etc/profile.d, misalnya:
# skrip saya ekspor MY_VAR = var_value
Ini berfungsi dengan baik untuk pengguna saat ini:
alex @ alex-64: ~ $ echo $ MY_VAR var_value
Sekarang saya membutuhkan variabel lingkungan yang sama untuk pengguna root, tetapi script /etc/profile.d tidak berfungsi untuk root:
alex @ alex-64: ~ $ echo $ MY_VAR var_value alex @ alex-64: ~ $ sudo su root @ alex-64: / home / alex # echo $ MY_VAR root @ alex-64: / home / alex #
Bagaimana saya bisa mengatur variabel yang sama untuk root?
root
environment-variables
Alex F
sumber
sumber
sudo
sangat terkait. (Tetapi ini bukan duplikat karena pertanyaan ini adalah tentang bagaimana menyesuaikan lingkungan root sendiri .)Jawaban:
sudo biasanya tidak melestarikan variabel lingkungan lokal. Anda harus menggunakannya dengan
-E
switch untuk melakukannya, yaitusudo -E su
akan menghemat $ MYVAR untuk root.Atau, untuk membuat variabel persisten yang benar-benar luas sistem, Anda harus mengaturnya
/etc/environment
.sumber
FOO=bar
Seperti proses yang Anda tetapkan variabel lingkungan Anda sendiri, misalnya dengan mengedit '~ / .bashrc', Anda dapat mendefinisikan variabel lingkungan root dengan mengedit '/root/.bashrc'.
sumber
Defaults env_reset
di/etc/sudoers
akan mengatur ulang root yangPATH
ditentukan oleh/etc/environment
.Anda dapat memodifikasinya
Defaults !env_reset
untuk menonaktifkan pengaturan ulang atau menambahkan:sumber