CentOS系统修改ROOT密码


纸上得来终觉浅,绝知此事要躬行。

CentOS系统修改ROOT密码


1. CentOS5/6

1.1 修改密码

CentOS5/6 修改 ROOT 密码

现实生活中可能会出现这种问题,忘记主机的 root 密码。如果你是网络管理员,这对你来说是不可容忍的,那之后我们应该怎么办呢?

Linux 的启动级别中有一个单用户模式启动,也就是启动级别 1,在系统启动的时候给系统的内核传递一个参数 1 或者 single,以单用户模式登陆操作系统,通过 passwd 命令来重设 root 用户的密码。

  • 重启操作系统(CentOS),默认会在启动界面(grub)停留几秒钟,随便按一下键盘上的一个键,此时就会进入到操作系统配置引导界面。

CentOS系统修改ROOT密码

  • 对应界面里的 title 是在 /boot/grub/grub.conf 这个配置文件中指定。如果系统中存在多个 kernel 内核,我们可以手动进行设定,使其在开机的时候可以启动。一般情况下,升级内核,系统会自动帮我们创建的。

  • 根据提示键盘输入e 可以进入到编辑界面

CentOS系统修改ROOT密码

  • 这三个选项就是 /boot/grub/grub.conf 文件里的配置信息

  • root (hd0,0)

    • 指定内核文件所在磁盘的位置
  • kernel /vmlinuz-2.6.32...

    • 指定内核文件的版本以及参数选项的设定
  • initrd /initramfs-2.6.32...img

    • ramfs的所在img文件位置,用于硬盘加载驱动
# cat /boot/grub/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You do not have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /, eg.
#          root (hd0,1)
#          kernel /boot/vmlinuz-version ro root=/dev/sda2
#          initrd /boot/initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,1)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=6e24ec7a-2d19-466e-bacc-92750b1f4bef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
  • 将光标移动到第二个选项处,同样按下键盘上的 e 键进入到编辑界面,此时我们在后面追加参数 1 或者参数 single 就可以以单用户的模式登陆操作系统。

CentOS系统修改ROOT密码

  • 回车进入到上层的界面,之后按下 b 键就是启动操作系统。此时,将以很快的速度进入单用户模式,因为不用启动多余的服务程序。进入不需要输入 root 密码,通过 passwd 命令来重置我们的 root 用户的密码

CentOS系统修改ROOT密码

  • 然后我们可以通过 exit 命令退出单用户模式,此时操作系统内核就会根据 /etc/inittab 配置文件中设置的默认启动级别来启动。或者直接输入 init 3init 5 指定运行级别来启动操作系统。

1.2 grub 加密

我们可以看到只要我们的物理主机很容易被他人接近,那么对我们来说就意味着并不安全,所以我们可以通过设置**GRUB加密**来对开启一层密码防护机制,来保护主机的安全。

  • 通过grub-md5-crypt来生成md5加密密码
# grub-md5-crypt
Password:
Retype password:
$1$UGA2B1$DriIdrVTEgVg95fHHX4H./
  • password --md5 密码添加到 /boot/grub/grub.conf 这个配置文件里,即可对 grub 加密。
# vi /boot/grub/grub.conf
password --md5 $1$UGA2B1$DriIdrVTEgVg95fHHX4H./

#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,1)/boot/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
        root (hd0,1)
        kernel /boot/vmlinuz-2.6.32-358.el6.x86_64 ro root=UUID=6e24ec7a-2d19-466e-bacc-92750b1f4bef rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-358.el6.x86_64.img
  • 当我们下次相对grub菜单进行修改的时候,会提示我们按p键来输入密码。如果密码正确,则可以进行修改,不然则否。

CentOS系统修改ROOT密码

CentOS系统修改ROOT密码

  • 通过GRUB加密算法我们可以对进入GRUB进行加密,这样就能防止别人恶意进入单用户模式,从而修改 root 密码了。当然,如果连GRUB的秘密都忘记的话,并且又忘记了root密码,那就真的不能登陆到root用户了。

其实,这样做也并不一定安全。如果有不法分子将主机中的硬盘卸下之后重新接入一个新的操作系统,主机中的数据照样可以得到。


2. CentOS7

CentOS7 修改 ROOT 密码

  • 开机时随便按下键盘,进入以下菜单

  • 光标停留在第一项,并按 e,进入编辑界面,定位到 ro 所在的位置。

CentOS系统修改ROOT密码

  • ro 改成 rw init=/sysroot/bin/sh 完成之后按 Ctrl+x

CentOS系统修改ROOT密码

  • 启动到单用户模式后的界面,依次输入以下命令进行root密码修改,修改完成之后强制重启即可。在此提示符下输入以下命令,命令不会显示出来,输入完成后按回车。 - chroot /sysroot/
    切换根目录 - passwd root
    输入密码,如果安装的语言是中文可能会出现乱码 - touch /.autorelabel
    如果之前开启了selinux,输入此命令,会多一个提示符 - exec /sbin/init 或者 exec /sbin/reboot
    重启系统

CentOS系统修改ROOT密码


文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录