Aktualisieren:
Das Festlegen globaler Umgebungsvariablen sollte weiterhin in durchgeführt werden /etc/environment
, aber wie Sie bereits betont haben, sudo -s
hat die Verwendung die Wirkung, dass diese Variablen "verschwunden" sind.
Der Grund dafür ist sudo
eine Richtlinie zum Zurücksetzen der Umgebung und zum Festlegen eines sicheren Pfads . Es ist standardmäßig aktiviert:
/etc/sudoers:
Defaults env_reset
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Somit wird alles, was im /etc/environment
Pfad angegeben ist, von überschrieben sudo
.
Die Handbuchseite für sudoers
Staaten:
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.
Als Workaround können Sie verwenden, sudo su
dass eine Shell mit Root-Rechten versehen wird, aber den richtigen PATH enthält.
Ursprüngliche Antwort
Sie sollten es einstellen /etc/environment
.
Versuchen Sie es sudo YOUR_TEXT_EDITOR /etc/environment
(stellen Sie sicher, dass Sie zuerst ein Backup erstellen).
Weitere Informationen finden Sie unter EnvironmentVariables
Systemweite Umgebungsvariablen
Einstellungen für Umgebungsvariablen, die sich auf das gesamte System (und nicht nur auf einen bestimmten Benutzer) auswirken, sollten nicht in einem der vielen Skripts auf Systemebene abgelegt werden, die ausgeführt werden, wenn das System oder die Desktopsitzung geladen werden, sondern in
/etc/environment
- Diese Datei ist speziell für systemweite Einstellungen von Umgebungsvariablen gedacht. Es ist keine Skriptdatei, sondern besteht aus Zuweisungsausdrücken, einer pro Zeile. Insbesondere werden in dieser Datei die systemweiten Einstellungen für das Gebietsschema und den Pfad gespeichert.
Nicht empfohlen:
/etc/profile
- Diese Datei wird ausgeführt, wenn eine Bash-Anmeldeshell eingegeben wird (z. B. beim Anmelden über die Konsole oder über ssh) sowie vom DisplayManager, wenn die Desktopsitzung geladen wird. Dies ist wahrscheinlich die Datei, auf die Sie verwiesen werden, wenn erfahrene UNIX-Systemadministratoren nach Umgebungsvariablen gefragt werden. In Ubuntu reicht diese Datei jedoch nicht aus, um die Datei /etc/bash.bashrc aufzurufen.
/etc/bash.bashrc
- Dies ist die systemweite Version der Datei ~ / .bashrc. Ubuntu ist standardmäßig so konfiguriert, dass diese Datei ausgeführt wird, wenn ein Benutzer eine Shell oder die Desktop-Umgebung betritt.
visudo
Einstellungen für den sicheren Pfad mit (benötigt Root-Berechtigungen) bearbeiten. Dies ist keine empfohlene Vorgehensweise. Es ist nur hier für die Bildung.sudo -i
simuliert ein Login (ähnlich wiesudo su -
) und gibt Ihnen somit diese Umgebungsvariablen.quelle