$ id
uid=1296041358(simon_schuster) gid=1296041358(simon_schuster) groups=1296040449(domain_u),1296041358(simon_schuster)
[simon_schuster@engcen5 ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific aliases and functions
JAVA_HOME=/usr/local/java/
export JAVA_HOME
2条答案
按热度按时间ecbunoof1#
从脚本中删除ssh比添加ssh更痛苦
JAVA_HOME
这样的话bin/hadoop
脚本。所有的执事都是通过这个开始的,所以如果env不起作用,这是改变这个的要点。kxeu7u2r2#
如果.bash\u profile和.bashrc没有被调用,可能是因为shell被ssh调用以非交互方式调用,这与centrify无关。
下面有一篇文章对此作了进一步描述:http://hacktux.com/bash/bashrc/bash_profile
如果希望调用.bash\u概要文件和.bashrc,则需要将ssh调用更改为使用交互式shell,如下所述。
为什么ssh远程命令在手动运行时获得的环境变量更少?
让我给你举个例子。
这是我在运行centrify和openssh的系统上的.bashrc
如果我尝试使用远程ssh连接连接到系统并执行env命令,那么这个ssh连接将调用一个非交互式shell,正如您在下面所看到的,java\u home变量没有显示。这是因为如果以非交互方式调用shell,.bashrc不是源代码。
下面是作为同一个用户的另一个会话,但这次用户以交互方式登录并键入env命令。请注意,显示了javahome变量。这是因为.bashrc是在调用交互式(登录)shell时生成的。
为了让ssh为您的bash\u概要文件和bashrc提供源代码,您必须使用--login选项调用bash,如下所示。如您所见,当通过ssh远程执行env命令时,javahome变量现在是可见的。
总之,没有获取环境变量的事实与centrify无关,而是与shell被非交互调用的事实有关。
centrify只负责身份验证、访问控制和策略实施,不影响openssh或shell的默认行为。
希望这有帮助。