如何通过SSH(使用Putty)login到RHEL时将文件导出到其他用户的bash?

我正在运行RHEL 7.3,但是在其他Linux系统上的过程可能相似。

我已经以root身份login。 我有一个名为openrc的文件,它充满了像export OS_IDENTITY_API_VERSION=3这样的行。 我想将此文件移动到某个位置,以便在其他用户使用SSHlogin时自动加载该文件。 读过相关的线程后,我尝试使用这个作为root用户添加这个,但是这似乎只是为root用户添加这些值。 当我作为另一个用户login时,说'admin01'值不会被加载。

 echo source /home/admin01/openrc>>~/.bash_profile 

我也尝试将这个文件移动到/etc/profile.d,但是这似乎也只加载了根,而不是任何其他用户login。有人请解释发生了什么事。

 cp /home/admin01/openrc /etc/profile.d/openrc.sh 

/etc/profile有这样的警告;

 # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, as this # will prevent the need for merging in future updates. 

将它命名为/etc/profile.d/openrc.sh或者如果需要为守护程序定义variables,则使用/etc/environment

这是一个例子(CentOS 7):

 # ls -lhaZ /etc/profile.d/ [...] -rw-r--r--. root root unconfined_u:object_r:bin_t:s0 /etc/profile.d/foo.sh 

内容:

 export HISTSIZE=10000 export HISTFILE=~/.bash_history export HISTCONTROL=ignoredups:ignorespace:erasedups export HISTTIMEFORMAT="%y-%m-%d %H:%M " 

以非root用户身份login:

 $ set | grep HIST HISTCONTROL=ignoredups:ignorespace:erasedups HISTFILE=/home/user/.bash_history HISTFILESIZE=10000 HISTSIZE=10000 HISTTIMEFORMAT='%y-%m-%d %H:%M ' 

使用/etc/environment ,将行放在/ etc / environment中而不export

请记住,当您不使用bash或不使用bash作为loginshell时,您可能需要坚持使用/etc/environment

https://access.redhat.com/discussions/731373

请注意,对/ etc / profile和/etc/profile.d所做的所有更改都将应用于login到系统的每个用户。 由于我有一个预感,这个openrc文件具有身份validation凭据,你必须确保你真的希望这适用于每一个用户。 如果您只希望将其应用于某些用户,则可以将该文件复制到他们的主文件夹,并将其包含在〜/ .profile中,并用一行说明source ~/openrc