开发者

Macports sudo expands ~ to /var/root in python

I installed the macports version of sudo. All is well, except for one thing. Using python 2.6 to expand ~ to the user's home directory results in a different output than the version of sudo that comes with Snow Leopard.

For example consider the following python code:

#expand_home_dir.py
import os

os.path.expanduser('~')

Below are 3 different calls of the code listed above. The first call using sudo is using the Macports version because my $PATH begins with /opt/local/bin:

robert$ python2.6 expand_home_dir.py 
/Users/robert
robert$ sudo开发者_开发知识库 python2.6 expand_home_dir.py 
/var/root
robert$ /usr/bin/sudo python2.6 expand_home_dir.py
/Users/robert

Any idea why this is happening?


The HOME environment variable controls what ~ expands to. It sounds like your MacPorts-installed version of sudo is resetting HOME to the root user's home directory, while the system-installed version doesn't. What happens if you type sudo sh -c 'echo $HOME'?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜