Frage wie man die Umgebungsvariable für root-Benutzer setzt


Ich bin Mac-Benutzer.

Ich möchte PYTHONPATH env für root setzen. damit

$ sudo su -
# vi ~/.profile

und zu Datei hinzufügen 'export PYTHONPATH = / mypythonlib'

dann

# env

Ich kann diese Linie sehen

PYTHONPATH=/Users/simpnet2/projects/meiji/src/hershey

aber..

Wenn ich den Sudo-Befehl verwende, kann ich das nicht finden

$ sudo env

.. es gibt keinen PYTHONPATH

Mein Programm muss mit dem Befehl sudo ausgeführt werden und benötigt PYTHONPATH.


6
2018-03-09 02:21


Ursprung


Antworten:


Wenn Sie sh versuchen versuchen /etc/profile, Bash Versuch /etc/bashrc und wenn Sie zsh verwenden, versuchen Sie es /etc/zshenv.


7
2018-03-09 02:28



Sie können PYTHONPATH sichtbar machen, um Ihre Sudoers-Datei bearbeiten zu können. Beachten Sie, dass Sie dies nur durch visudo tun sollten wie hier erklärt.


5
2017-12-22 16:28



Du solltest es versuchen sudo -i welches die Anmeldung als simuliert root und Quelle der ~root/.profile.


3
2018-03-09 02:28



Ab 10.8.5 funktionierte meine Umgebungsanweisung im Pfad .profile des Benutzers root (/ var / root). Nach dem Beenden von bash und dem Zurückkehren zur root-Benutzeraufforderung mit 'su -' konnte ich meinen neuen Pfad usw. mit dem Befehl 'env' sehen und Meine MacPorts-Installation funktioniert nicht richtig.

MacBook-Pro: ~ root # cat /var/root/.profile
export MANPATH = / opt / local / teilen / man: $ MANPATH
export PATH = / opt / lokal / bin: / opt / local / sbin: $ PATH
MacBook-Pro: ~ root # welcher Port
/ opt / local / bin / port

1
2017-12-11 17:34



Nun, in anderen Linux-Systemen ist es auch richtig, dass 'sudo' keine lokale Umgebungsvariable verwendet. Sie können jedoch die temporäre Umgebungsvariable zusammen mit dem Befehl 'sudo' deklarieren.

In Ihrem Fall können Sie beispielsweise 'PYTHONPATH = / mypythonlib' in Ihrem Befehl 'sudo env' hinzufügen, und der letzte Befehl lautet:

sudo PYTHONPATH=/mypythonlib env

Sie können diesen Artikel auch lesen: Sudo verwenden. Sie können sehen, wie 'sudo' benutzerdefinierte Umgebungsvariablen behält oder ignoriert.


1
2018-05-21 14:48



Bei der Anmeldung als normaler Benutzer und dem Aufruf von "su - root" habe ich festgestellt, dass die Bash von Mac OS 10.8.5 .profile und .bash_profile ignoriert; Ich konnte $ PATH von root nicht ändern, indem ich diese Dateien editierte. Was war Arbeit war Bearbeiten von / etc / Pfade. Nach Verlassen der Root Shell und erneuter Eingabe mit "su - root" war der neue Pfad vorhanden.


0
2018-04-17 21:13