CentOS 7的更新还是非常大的,很多平时使用的命令已经变化了,要上手还真要一段时间。比如忘记root密码。在5、6的系统中直接进入单用户模式下,一个passwd命令修改,重启即可。但是在Centos7变化使用得Selinux限制了,并采用GRUB2为启动器时,将无法通过单用户模式重置root密码。下面将介绍如何重置CentOS7的root密码。
看了几个方法,都没用
因为修改密码的时候,提示是乱码 所以要求密码8位以上 自己设短了
实用方法如下:
1.在启动选择界面按E 进入编辑模式
2.在linux16 核心命令行所在参数行尾添加 空格rd.break(用上下箭头把光标放在linux16这行,按END键直接跳到行尾):
- linux16 /vmlinuz-3.10.0-229.el7.x86_64 root=/dev/mapper/centos-root \
- rord.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet\
- LANG=zh_CN.UTF-8 vga=0x340 rd.br rd.break
3.按下ctrl + x 进行shell交互模式;
4. 输入 mount 在最后一行可以看到 sysroot目录只有 ro只读权限
5.输入 mount -o remount逗号 rw /sysroot 更改权限
6.输入 chroot /sysroot 改变系统的root信息
7.输入 passwd 会提示你输入新密码两次,我的是乱码显示,不影响输入
但要注意的是 密码不能少于8位 也可以用(echo 新8位密码|passwd -stdin -root)
8.输入 touch /.autorelabel 更新 SELINUX信息,防止出错
9.输入两次 exit 退出并自动重启
如果重启完新密码不能进入系统 可以再重启几次 可能系统信息没有更新过来
等段时间就可以登录了
下面是图文的另一种方法,与我的区别在于不用 touch /.autorelabel更新SELINUX信息 ,而直接修改SELINUX文件内容 我是嫌命令打得太多 没用它
如果我的方法无效 可以试试这种
1. 启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式
2. 在linux16 核心命令行所在参数行尾添加以下内容:
- linux16 /vmlinuz-3.10.0-229.el7.x86_64 root=/dev/mapper/centos-root \
- rord.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet\
- LANG=zh_CN.UTF-8 vga=0x340 rd.br rd.break
3.按下ctrl + x 进行shell交互模式;
输入两次exit后即可重启进入系统。
提示:上面我修改密码时乱码,是因为我的环境变量是中文,所以会这样,不影响。
另外如果不修改/etc/selinux/config文件是进不了系统的。会有如下的错:
- systemd[1]: Failed to load SELinux policy. Freezing.