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