Wie setze ich persistente Umgebungsvariablen für root?


40

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?


Antworten:


44

sudo speichert normalerweise keine lokalen Umgebungsvariablen. Sie sollten es mit dem -ESchalter verwenden, um dies zu tun, dh $ MYVAR für root sudo -E suwird beibehalten .

Um dauerhafte Variablen zu erstellen, die wirklich systemweit sind, sollten Sie sie alternativ festlegen /etc/environment.


14
Funktioniert nicht, / etc / environemnt-Variablen sind nicht für
Sudo

3
@ FredericYesidPeñaSánchez hat es für mich auf CentOS gemacht. Sie schreiben dort keine FOO=bar
Skripte

10

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.


8

Defaults env_resetin /etc/sudoerssetzt root's zurück, PATHdefiniert durch /etc/environment.

Sie können es ändern Defaults !env_reset, um das Zurücksetzen zu deaktivieren oder Folgendes hinzuzufügen:

Defaults secure_path="my/custom/path:/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin

Wenn ich die zweite Lösung verwenden möchte (dh Pfad zu secure_path hinzufügen), was ist der Schlüssel ?! Pfad ist nur Wert. Ich möchte ANDROID_NDK zu Umgebungsvariablen für root hinzufügen. Daher verwende ich im Moment nur die erste (! Env_reset). Danke.
Dr.jacky
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.