如何为root用户设置环境变量

时间:2011-03-09 02:21:59

标签: macos environment sudo pythonpath

我是Mac用户。

我想为root设置PYTHONPATH env。所以

$ sudo su -
# vi ~/.profile

并添加到文件'export PYTHONPATH = / mypythonlib'

然后

# env

我可以看到这一行

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

,但..

当我使用sudo命令时,找不到

$ sudo env

..没有PYTHONPATH

我的程序必须使用sudo命令运行,需要PYTHONPATH

6 个答案:

答案 0 :(得分:7)

如果您使用sh try /etc/profile,请尝试使用/etc/bashrc,如果您使用zsh,请尝试/etc/zshenv

答案 1 :(得分:5)

你可以让sudo的PYTHONPATH可以编辑你的sudoers文件。请注意,您只能通过visudo as explained here执行此操作。

答案 2 :(得分:3)

您应该尝试sudo -i来模拟以root登录并获取~root/.profile

答案 3 :(得分:1)

从10.8.5开始,将我的环境语句放在root用户(/ var / root)主目录中的.profile路径中。在退出bash并使用'su - '回到root用户提示符后,我可以使用'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

答案 4 :(得分:1)

那么,在其他Linux系统中,' sudo'也是正确的。不使用本地环境变量。但您可以声明临时环境变量以及' sudo'命令。

例如,在您的情况下,您可以添加' PYTHONPATH = / mypythonlib'在你的命令' sudo env'中,最后的命令是:

sudo PYTHONPATH=/mypythonlib env

您还可以阅读这篇文章:Using sudo。你可以看到' sudo'保留或忽略用户定义的环境变量。

答案 5 :(得分:0)

如果以普通用户身份登录并调用“su - root”,我发现Mac OS 10.8.5的bash忽略了.profile和.bash_profile;我无法通过编辑这些文件来更改root的$ PATH。编辑/ etc / paths的工作是什么。退出root shell并再次输入“su - root”后,新路径就会出现。