как установить переменную окружения для пользователя root - PullRequest
6 голосов
/ 09 марта 2011

Я пользователь Mac.

Я хочу установить PYTHONPATH env для root.поэтому

$ sudo su -
# vi ~/.profile

и добавьте в файл 'export PYTHONPATH = / mypythonlib'

затем

# env

Я вижу эту строку

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

но ..

когда я использую команду sudo, я не могу найти, что

$ sudo env

.. PYTHONPATH отсутствует

Моя программа должна работать с командой sudo и нуждается в PYTHONPATH.

Ответы [ 6 ]

7 голосов
/ 09 марта 2011

Если вы используете sh, попробуйте /etc/profile, bash try /etc/bashrc, а если вы используете zsh, попробуйте /etc/zshenv.

.
5 голосов
/ 22 декабря 2014

Вы можете сделать PYTHONPATH видимым, чтобы sudo редактировал файл sudoers. Обратите внимание, что вы должны делать ТОЛЬКО через visudo , как описано здесь .

3 голосов
/ 09 марта 2011

Вы должны попробовать sudo -i, который будет имитировать вход в систему как root и источник ~root/.profile.

1 голос
/ 21 мая 2015

Ну, в другой системе Linux также правильно, что 'sudo' не использует локальную переменную окружения. Но вы можете объявить временную переменную среды вместе с командой 'sudo'.

Например, в вашем случае вы можете добавить 'PYTHONPATH = / mypythonlib' в вашу команду 'sudo env', и последняя команда:

sudo PYTHONPATH=/mypythonlib env

Вы также можете прочитать эту статью: Использование sudo . Вы можете увидеть, как «sudo» хранит или игнорирует пользовательские переменные среды.

1 голос
/ 11 декабря 2013

Начиная с 10.8.5, размещение операторов среды в пути .profile в доме пользователя root (/ var / root) работало. после выхода из bash и возврата к приглашению пользователя root с помощью «su -» я мог видеть свой новый путь и т. д. с помощью команд «env» и , если мой MacPorts установился правильно.

MacBook-Pro:~ root# cat /var/root/.profile
export MANPATH=/opt/local/share/man:$MANPATH
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
MacBook-Pro:~ root# which port
/opt/local/bin/port
0 голосов
/ 18 апреля 2015

В случае входа в систему как обычного пользователя и вызова «su - root» я обнаружил, что bash в Mac OS 10.8.5 игнорирует .profile и .bash_profile;Я не смог изменить $ PATH root, отредактировав эти файлы.Что работало, так это редактирование / etc / paths.После выхода из корневой оболочки и повторного ввода с «su - root» новый путь присутствовал.

...