ansible一时脑抽使用file模块操作文件导致远程主机bin目录软连接被更改,系统无法登录

发布时间 2023-07-26 11:51:46作者: 忙碌在路上

如题,二者有相同的参数,脑抽执行后就悲剧了,造成多个主机无法远程登录。



故障起因:


错误操作:使用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均可以正常登录。