как установить переменную среды для пользователя root
Я пользователь 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 ответов
Если вы используете sh try /etc/profile
, bash try /etc/bashrc
и если вы используете zsh try /etc/zshenv
.
вы можете сделать PYTHONPATH видимым для sudo редактирования файла sudoers. Обратите внимание, что вы должны делать это только через visudo Как пояснил здесь.
вы должны попробовать sudo -i
который будет имитировать вход в систему как root
и источник ~root/.profile
.
начиная с 10.8.5, помещая мои операторы среды в.путь профиля в доме пользователя root (/var/root) работал. после выхода из bash и возвращения в приглашение пользователя root с "su -" я мог видеть свой новый путь и т. д. с командой "env"и мой MacPorts installationw orking правильно.
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
Ну, в другой системе Linux также правильно, что "sudo" не использует локальную переменную среды. Но вы можете объявить временную переменную среды вместе с командой "sudo".
например, в вашем случае вы можете добавить "PYTHONPATH= / mypythonlib" в свою команду "sudo env", и последняя команда:
sudo PYTHONPATH=/mypythonlib env
вы также можете прочитать эту статью: использование sudo. Вы можете увидеть, как "sudo" сохраняет или игнорирует пользовательские переменные среды.
в случае входа в систему как обычный пользователь и вызова "su - root" я обнаружил, что bash Mac OS 10.8.5 игнорируется .профиль и. bash_profile; я не смог изменить $PATH root, отредактировав эти файлы. Что работало, так это редактирование/etc / paths. После выхода из корневой оболочки и входа снова с "su-root" новый путь присутствовал.