Um persistente Umgebungsvariablen zu erstellen, füge ich die Skriptdatei zum Verzeichnis /etc/profile.d hinzu, zum Beispiel:
# mein Drehbuch export MY_VAR = var_value
Dies funktioniert ordnungsgemäß für den aktuellen Benutzer:
alex @ alex-64: ~ $ echo $ MY_VAR var_value
Jetzt benötige ich die gleichen Umgebungsvariablen für den Root-Benutzer, aber das Skript /etc/profile.d funktioniert nicht für den Root-Benutzer:
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 #
Wie kann ich die gleichen Variablen für die Wurzel einstellen?
root
environment-variables
Alex F
quelle
quelle
sudo
ist sehr verwandt. (Aber es ist kein Duplikat , weil diese Frage ist , wie root anpassen eigene Umgebung.)Antworten:
sudo speichert normalerweise keine lokalen Umgebungsvariablen. Sie sollten es mit dem
-E
Schalter verwenden, um dies zu tun, dh $ MYVAR für rootsudo -E su
wird beibehalten .Um dauerhafte Variablen zu erstellen, die wirklich systemweit sind, sollten Sie sie alternativ festlegen
/etc/environment
.quelle
FOO=bar
So wie Sie Ihre eigene Umgebungsvariable definieren, beispielsweise durch Bearbeiten von '~ / .bashrc', können Sie die Umgebungsvariable von root durch Bearbeiten von '/root/.bashrc' definieren.
quelle
Defaults env_reset
in/etc/sudoers
setzt root's zurück,PATH
definiert durch/etc/environment
.Sie können es ändern
Defaults !env_reset
, um das Zurücksetzen zu deaktivieren oder Folgendes hinzuzufügen:quelle