如题,二者有相同的参数,脑抽执行后就悲剧了,造成多个主机无法远程登录。
故障起因:
错误操作:使用ansilbe远程往目标主机/bin目录拷贝文件的时候,使用错误模块,本该使用copy模块,而使用了file模块,造成远程主机/bin这个软连接被连接到了不存在的文件,并且权限被设置为了644。
影响:造成远程主机无法ssh登录,ssh无任何提示,不提示输入user
修复步骤:
步骤一、/bin软连接修复
方法1:
查看一下目前自己和同事是否有未退出的session,直接unlink掉错误的软连接,直接ln -s usr/bin bin 重做软连接即可
方法2(方法1行不通的情况下):
/bin软连接救援模式恢复步骤:
1、开机上下键盘等待系统选择菜单
2、选择系统引导菜单,一般为第一个。
3、往下找到16开头那一行定位到 ro处
4、把ro改成 rw init=/sysroot/bin/sh 完成之后按按 ctrl+x to start
5、重启后进入单用户模式
6、chroot /sysroot/ (改变根),如报错找不到/bin/sh不用理会
cd /sysroot/
ls -alh 确认bin软连接当前情况
删除软连接名称
usr/bin/unlink bin
创建软连接
ln -s usr/bin bin
检查ls -alh / 目录是否软连接成功
检查ls -alh /bin 目录 检查文件是否保持存在
reboot机器测试登录
步骤二: 实际目录权限修复
通过以上任一步骤修复完毕/bin软连接后,发现root可以正常登录,普通用户无法登录,提示 excute faild bin/bash permission deny
经过排查,是file模块操作的时候吧usr/bin的目录设置为644了,而/bin软连接是指向这个目录的,所以无权限,修改usr/bin目录的权限即可。
chmod 755 /usr/bin
再次尝试普通用户和root均可以正常登录。
作者:忙碌在路上