我们有一个 IBM HPC 集群,带有两个管理节点(rhel 6.4x64),它们都连接到 NFS 服务器以共享对象,例如主目录。
几天前,我们遇到了一起事故,现在其中一台管理服务器出现了一个奇怪的问题。
问题:当我以普通用户(非 root)身份登录受影响的管理服务器时,/etc/profile、/etc/profile.d/*.sh、/etc/bashrc、.bashrc 和 .bash_profile 均未执行。我最终得到一个受限的 shell,没有 PS1(只有 -bash-4.1$),PATH 变量很小(/usr/local/bin:/bin:/usr/bin),env 命令仅显示几个变量:
-bash-4.1$ env
TERM=xterm
SHELL=/bin/bash
SSH_CLIENT=10.81.234.8 42548 22
SSH_TTY=/dev/pts/0
USER=testuser4
MAIL=/var/mail/testuser4
PATH=/usr/local/bin:/bin:/usr/bin
PWD=/home/testuser4
LANG=fr_FR.UTF-8
SHLVL=1
HOME=/home/testuser4
LOGNAME=testuser4
SSH_CONNECTION=10.81.234.8 42548 172.16.33.201 22
_=/bin/env
但是使用 root 用户时,没有问题。如果我在受影响的服务器上以简单用户身份获取 /etc/profile,它就会起作用,我就可以恢复整个环境。
在第二台管理服务器上,一切正常,无论是 root 还是简单用户。
[testuser4@hpcadmin2 ~]$ echo $PATH
/opt/xcat/bin:/opt/xcat/sbin:/opt/xcat/share/xcat/tools:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/pcm/bin:/opt/pcm/sbin:/opt/pcm/web-portal/gui/3.0/bin:/opt/pcm/web-portal/perf/1.2/bin:/usr/bin:/bin:/usr/local/bin:/local/bin:/sbin:/usr/sbin:/usr/ucb:/usr/sbin:/usr/bsd:/shared/ibm/platform_lsf/9.1/linux2.6-glibc2.3-x86_64/etc:/shared/ibm/platform_lsf/9.1/linux2.6-glibc2.3-x86_64/bin:/opt/xcat/bin:/opt/xcat/sbin:/opt/xcat/share/xcat/tools:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin::/home/testuser4/bin
/var/log/messages 中没有显示任何错误消息,我被困住了,我在网上找不到任何有用的解决方案,而且我不明白为什么只有普通用户受到影响。
我确实验证了访问权限、这些文件的大小,它们都是相同的。
问候。
答案1
问题已解决,这是一个文件权限问题。
为了寻找原因,我在两台服务器上以简单用户身份运行登录命令(login -p),在第一台服务器上,它因错误而死机,在第二台服务器上,它提示我登录,这就是触发因素,我比较了两台服务器上的文件权限,然后我发现了问题。
/bin 中的几乎所有文件的权限都被破坏了,我与第二个节点进行了比较,然后我写了一个小 shell 脚本来纠正这种情况,瞧,问题解决了。
问候。