背景
今天在使用堡垒机连接后端主机的时候发现无法使用xftp打开后端主机的/tmp目录,但是用ssh命令行登陆可以列出/tmp目录,折腾了快一天了才发现问题原因,原来是自己的基础不牢,以下记述具体过程。
怀疑jumpserver有问题
查看jumpserver日志也没看到有相关的报错日志,而且其他主机都正常就这一台不正常,应该不是jumpserver有问题
怀疑主机目录权限
因为在/tmp目录创建的一个软链接文件,怀疑是软软件文件对应的真实目录没权限打开,于将真实目录的权限设为755,发现还是不行。
怀疑主机目录有特殊权限
对比其他主机的/tmp目录,发现多了个点
怀疑selinux搞和鬼,但是selinux已经关了,干脆将/tmp目录重建,重新授权
rm -rf /tmp
chmod -R 1777 /tmp
发现还是不能打开。
ssh交互式连接也没法使用任何命令
连接完就卡住(后来发现其实不是卡住,是需要你交互)
然后使用root用户再交互式连接发现可以连接,那应该是用户有问题了,想将普通用户删除再重新建,删除的时候又提示sftp-server应用在占用,又怀疑是sftp-server应用是不是有问题,其他主机没有这个应用在运行。
怀疑普通用户有问题
将用户删除,重新增加
userdel -r harmony
useradd harmony
passwd harmony xxx
卸载sftp-server软件
[root@oracle_10_10_10_111 ~]# rpm -qf /usr/libexec/openssh/sftp-server
openssh-server-7.4p1-22.el7_9.x86_64
yum remove -y openssh-server-7.4p1-22.el7_9.x86_64
将openssh-server给卸载了发现openssh也不能用了,只能再装openssh,装完openssh后再重启,发现还是打不开。
回顾之前操作
普通使用交互式远程连接不能使用任何命令,是不是环境变量有问题,不过如果环境变量有问题应该是会报错,他没有任何报错。
确认问题原因
联想到环境变量就联想到普通用户的bashrc和bash_profile,查看一下bashrc和bash_profile和其他的作对比,发现也没什么不一样,就是bashrc多了一个命令
将这个命令注释掉,果然可以打开了。
疑问点
为什么注释了就可以,后来发现其实原来交互式连接不是卡住,是等待你输入,而我一直没有输入,并且xftp上他是没法输入的所以一直提示超时。
仔细对比了两个文件的区别
意思,需要执行一次的放在.bash_profile,而交互式的命令放在.bashrc,而我之前没有了解透彻,将sudo su - root写在.bashrc导致他一直在等待我输入,我却以为是卡住了,所以将sudo su - root放在.bash_profile就好了。