在 CentOS 8 上,$PATH 没有使用我的脚本“/etc/profile.d/app-server-profile.sh”(SSH 登录)中设置的值进行更新。
我正在通过 SSH 登录到该框。我希望“/etc/profile”在登录时执行我的“/etc/profile.d/app-server-profile.sh”脚本。(是否有日志可以确认此文件已执行?)
这是“/etc/profile.d/”的内容(权限是否正确?):
[builder@F1-TEST-V245 ~]$ ls -hal /etc/profile.d
total 108K
drwxr-xr-x. 2 root root 4.0K May 18 15:38 .
drwxr-xr-x. 113 root root 8.0K May 18 15:38 ..
-rw-r--r--. 1 root root 253 May 18 15:37 app-server-profile.sh
-rw-r--r--. 1 root root 664 May 11 2019 bash_completion.sh
-rw-r--r--. 1 root root 196 May 10 2019 colorgrep.csh
-rw-r--r--. 1 root root 201 May 10 2019 colorgrep.sh
-rw-r--r--. 1 root root 1.8K May 11 2019 colorls.csh
-rw-r--r--. 1 root root 1.6K May 11 2019 colorls.sh
-rw-r--r--. 1 root root 162 May 10 2019 colorxzgrep.csh
-rw-r--r--. 1 root root 183 May 10 2019 colorxzgrep.sh
-rw-r--r--. 1 root root 216 May 10 2019 colorzgrep.csh
-rw-r--r--. 1 root root 220 May 10 2019 colorzgrep.sh
-rw-r--r--. 1 root root 80 May 11 2019 csh.local
-rw-r--r--. 1 root root 1.1K Dec 14 2017 gawk.csh
-rw-r--r--. 1 root root 757 Dec 14 2017 gawk.sh
-rw-r--r--. 1 root root 2.3K Sep 10 2018 lang.csh
-rw-r--r--. 1 root root 2.3K Sep 10 2018 lang.sh
-rw-r--r--. 1 root root 500 May 11 2019 less.csh
-rw-r--r--. 1 root root 253 May 11 2019 less.sh
-rw-r--r--. 1 root root 57 May 18 15:38 maven.sh
-rw-r--r--. 1 root root 81 May 11 2019 sh.local
-rw-r--r--. 1 root root 106 May 11 2019 vim.csh
-rw-r--r--. 1 root root 248 May 11 2019 vim.sh
-rw-r--r--. 1 root root 120 May 10 2019 which2.csh
-rw-r--r--. 1 root root 310 May 10 2019 which2.sh
这是来自“/etc/profile”的片段(应该运行我的脚本):
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
这是“/etc/profile.d/app-server-profile.sh”的内容:
# All custom environment settings go in this file
# Add AWS CLI from /usr/local/bin
PATH="/usr/local/bin:$PATH"
PATH="/server-setup/scripts:$PATH"
export PATH
sudo chown --recursive :wheel /server-setup/scripts
sudo chmod -R 755 /server-setup/scripts
这是我的 SSH 登录后的 $PATH(路径上没有 /server-setup/scripts):
[builder@F1-TEST-V245 ~]$ echo $PATH
/home/builder/.local/bin:/home/builder/bin:/bin:/usr/bin:/bin
在我看来,通过 SSH 进入机器后,应该执行“app-server-profile.sh”脚本,并且应该更新我的 $PATH。它之前正在执行,但最近停止工作了。我不确定如何跟踪启动过程以找到失败的地方。
答案1
Centos 8
/etc/profile.d/
- 文件扩展名:
.sh
例如'/etc/profile.d/my-script.sh' - 文件权限
0644
:(-rw-r--r--) - 注销和登录后的更新(范围:全球的)
备择方案
/etc/environment
- 输入如下行:
export ENV_VAR=env_value
- 立即更新(范围:全球的)
~/.bashrc
,~/.bash_profile
- 输入如下行:
export ENV_VAR=env_value
- 立即更新(范围:当前用户)