/etc/profile中设置的环境变量对root账户不起作用?

sh/bash/dash/ksh/zsh等Shell脚本
回复
gniq
帖子: 1
注册时间: 2008-12-20 11:25
送出感谢: 0
接收感谢: 0

/etc/profile中设置的环境变量对root账户不起作用?

#1

帖子 gniq » 2008-12-20 11:32

在设置环境变量的过程中发现了2个问题,我想设置一个环境变量比如/usr/local/aaa
在/etc/profile中加入:export PATH=$PATH:/usr/local/aaa
然后注销当前账户,重新登录后env发现PATH里有aaa这项;然而sudo env查看PATH没有aaa这项(为什么?), /etc/profile这个文件每个账户登录后都应该读取吧?
奇怪的事情还不止如此,我su root后,然后在env,发现PATH和直接在普通账号下运行sudo env的PATH不一样,那sudo env读取的哪的啊
aBiNg
帖子: 1331
注册时间: 2006-07-09 12:22
来自: 南京
送出感谢: 0
接收感谢: 2 次

Re: /etc/profile中设置的环境变量对root账户不起作用?

#2

帖子 aBiNg » 2008-12-20 13:59

分清 login-shell 与 nonlogin-shell
分清 sudo 执行的环境变量变化
分清 su 与 su -

楼主大概就不会感到奇怪了。
squirrel1976
帖子: 26
注册时间: 2007-12-04 22:16
送出感谢: 1 次
接收感谢: 0

Re: /etc/profile中设置的环境变量对root账户不起作用?

#3

帖子 squirrel1976 » 2008-12-24 15:21

我也是这个情况,我想给全体用户设置
export JAVA_HOME=/usr/local/jdk1.6.0_07

于是修改了/etc/profile,添加上面那行话。但sudo su后,JAVA_HOME变量始终为空。
试过sudo su-,又不能成功。
squirrel1976
帖子: 26
注册时间: 2007-12-04 22:16
送出感谢: 1 次
接收感谢: 0

Re: /etc/profile中设置的环境变量对root账户不起作用?

#4

帖子 squirrel1976 » 2008-12-24 15:27

哦,这样就可以:
sudo su -
上面su和-间有一个空格。这样似乎能把原用户的环境变量代过去。
回复

回到 “Shell脚本”