美文网首页
CentOS6升级CentOS7后无法登录修复记录

CentOS6升级CentOS7后无法登录修复记录

作者: 叶迎宪 | 来源:发表于2021-02-03 18:17 被阅读0次

    问题现象,在CentOS 7系统命令行登录界面,输入root用户及密码后,界面闪了一下信息,又重新回到登录界面,ssh服务也没有起来。于是开始了尝试修复之旅

    开机按任意键,进入grub。这时的grub还是CentOS 6的

    选择CentOS 7内核,按e,选择光标在kernel行,再按e,在内核启动参数rhgb quite后面加空格1,回车保存,按b启动
    (或者在grub选择CentOS7时,按a修改内核参数,同样在最后加上1进入单用户模式)

    出现“Give root password for maintenance”一行,输入root密码,结果报错
    sulogin: failed to execute /bin/bash: Permission denied
    sulogin: failed to execute /bin/sh: Permission denied
    Can not execute su shell

    说明可能是根文件系统权限出现问题了。要修改文件权限,比较方便的还是用系统盘的拯救模式。(grub模式下修复可以参考https://stackoverflow.com/questions/55739224/unable-to-ssh-after-enforcing-selinux

    给虚拟机挂载上CentOS7光盘,启动顺序改为光盘优先,重启,进入拯救模式。挂载根目录
    chroot /mnt/sysimage

    通过ls -l,发现/bin 是软链接到 /usr/bin,sh软链接到 bash。而 /bin/bash 的权限是755,没有发现异常。继续google,发现可能是selinux的问题
    ls -Z bash
    -rwxr-xr-x. root root system_u:object_r:bin_t:s0 bash

    这里发现有异常,正常的CentOS 7结果是
    -rwxr-xr-x. root root system_u:object_r:shell_exec_t:s0 bash

    于是尝试修改
    chcon -t shell_exec_t /bin/bash

    重启。重启后第一次是可以登录的,但是再reboot以后又不行了。又尝试了 touch /.autorelabel,也是一样的结果。想尝试用 fixfiles -f relabel

    结果运行报错,是因为grep命令无法用了。参考网上,先修复一下几个库的软链接
    ln -s /usr/lib64/libsasl2.so.3.0.0 /usr/lib64/libsasl2.so.2
    ln -s /usr/lib64/libpcre.so.1.2.0 /usr/lib64/libpcre.so.0

    fixfiles完成后重启,还是执行权限错误。看来还是要动selinux了。在拯救模式下修改/etc/sysconfig/selinux

    SELINUX=enforcing
    改为
    SELINUX=permissive

    终于就可以登录了

    相关文章

      网友评论

          本文标题:CentOS6升级CentOS7后无法登录修复记录

          本文链接:https://www.haomeiwen.com/subject/cssmtltx.html