Güncelleme:
Global ortam değişkenlerinin ayarlanması hala yapılmalıdır /etc/environment
, ancak belirttiğiniz gibi sudo -s
, bu değişkenlerin etkisinin “ortadan kalkması” vardır.
Bunun nedeni , Ortamı sıfırlama ve güvenli bir yol belirleme sudo
politikasıdır . Varsayılan olarak etkindir:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Böylece /etc/environment
, yol için belirlenen her şey geçersiz kılınır sudo
.
sudoers
Devletler için manuel sayfa :
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.
Geçici bir çözüm olarak, sudo su
kök ayrıcalıklarına sahip ancak doğru PATH içeren bir kabuk sağlayacak olanı kullanabilirsiniz.
Orijinal cevap
Onu ayarlamalısın /etc/environment
.
Deneyin sudo YOUR_TEXT_EDITOR /etc/environment
(önce bir yedekleme oluşturduğunuzdan emin olun).
Daha fazla bilgi için: EnvironmentVariables
Sistem genelinde çevre değişkenleri
Sistemi bir bütün olarak etkileyen ortam değişken ayarları (yalnızca belirli bir kullanıcı yerine), sistem veya masaüstü oturumu yüklendiğinde çalıştırılan sistem düzeyindeki komut dosyalarının hiçbirine yerleştirilmemeli,
/etc/environment
- Bu dosya özellikle sistem çapında ortam değişken ayarları içindir. Bu bir komut dosyası değil, her satıra bir tane olmak üzere atama ifadelerinden oluşur. Özellikle, bu dosya sistem genelindeki yerel ayarları ve yol ayarlarını saklar.
Tavsiye edilmez:
/etc/profile
- Bu dosya, bir bash giriş kabuğu girildiğinde (örneğin konsoldan veya ssh üzerinden giriş yaparken) ve ayrıca masaüstü oturumu yüklendiğinde DisplayManager tarafından yürütülür. Muhtemelen kıdemli UNIX sistem yöneticilerine ortam değişkenleri hakkında bilgi verirken başvurulan dosya budur. Ancak Ubuntu'da, bu dosya /etc/bash.bashrc dosyasını çağırdıktan sonra çok az şey yapar.
/etc/bash.bashrc
- Bu ~ / .bashrc dosyasının sistem çapında bir sürümüdür. Ubuntu, bir kullanıcı bir kabuk veya masaüstü ortamına her girdiğinde bu dosyayı yürütmek için varsayılan olarak yapılandırılmıştır.