CentOS登录出现/bin/bash:: No such file or directory错误的修复咨询
修复CentOS登录时的
-bash: /bin/bash:: No such file or directory 错误 这个问题我之前帮不少用户排查过,核心原因一眼就能看出来:错误信息里的/bin/bash::多了一个冒号,说明某个用户的shell路径配置写错了,导致系统找不到正确的bash程序。下面一步步来修复:
第一步:进入单用户模式(CentOS 7+通用)
因为正常登录已经触发错误,得先进入单用户环境修改配置:
- 重启机器,当GRUB启动菜单出现时,按
e键编辑当前启动项 - 找到以
linux16(CentOS 7)或linux(CentOS 8+)开头的行,把里面的ro替换成rw init=/sysroot/bin/sh - 按下
Ctrl+X启动,进入单用户shell后,执行chroot /sysroot切换到系统的根目录(这时候你才能操作系统里的文件)
第二步:排查并修复用户的shell配置
错误大概率出在/etc/passwd文件的用户条目里:
- 先查看出问题的用户(比如root或者你的普通用户)的条目:
你会看到类似这样的行:cat /etc/passwd | grep 你的用户名root:x:0:0:root:/root:/bin/bash:——注意末尾多了一个冒号,这就是罪魁祸首! - 修复这个错误,有两种方式:
- 用sed命令一键修复:
sed -i 's/\/bin/bash:/\/bin/bash/' /etc/passwd - 手动编辑文件(如果sed不好用):
找到对应用户的行,把末尾多余的冒号删掉,保存退出(按vi /etc/passwdEsc,输入:wq回车)
- 用sed命令一键修复:
第三步:验证bash程序是否正常
如果修复完配置还是有问题,得检查bash本身是否存在:
- 执行命令查看bash文件:
如果显示ls -l /bin/bashNo such file or directory,说明bash被误删了,需要重装:
(如果机器没联网,可能需要挂载CentOS安装介质,用本地仓库来安装)yum reinstall bash
第四步:重启机器验证
- 执行
exit退出chroot环境,然后输入reboot重启机器 - 重启后尝试正常登录,或者执行
sudo su -,应该不会再出现那个错误了
另外提醒一下:如果是sudo su -触发的错误,要检查目标用户(比如root)的/etc/passwd条目,和普通用户的排查方式一样,都是找多余的冒号或者错误的shell路径。
内容的提问来源于stack exchange,提问作者Safejack
相关产品推荐
相关产品推荐

