1、查看当前运行级别
[root@cluster01 ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
系统共有0~6七个运行级别。其中级别0代表关机、级别6代表重启、级别1代表单用户模式、级别3代表多用户模式、级别5代表进入X-Windows,而级别2和4基本不用。
另外系统还有一种运行级别s,也是进入单用户模式,与运行级别1很类似,但有细微的差别。另外还有一个emergency运行级别。
各个运行级别的详细含义如下:
级别 | 说明 |
0 | 关机级别 |
1 | 单用户运行级别,运行rc.sysinit和rc1.d目录下的脚本 |
2 | 多用户,但系统不会启动NFS,字符模式,在有些Linux系统中,级别2为默认模式,具有 网络功能,如:Ubuntu,Debian |
3 | 多用户,字符模式,系统启动具有网络功能,redhat常用运行级别 |
4 | 用户自定义级别 |
5 | 图形界面模式,redhat常用运行级别 |
6 | 重启级别 |
S | 单用户运行级别,只运行rc.sysinit文件 |
s | 单用户运行级别,只运行rc.sysinit文件 |
single | 单用户运行级别,只运行rc.sysinit文件 |
emergency | 只运行sulogin,一般系统出启动错误时,会自动进入此级别,用户需输入root用户密码即可进入,再修改错误的内容。 |
2、进入单用户模式
在grub的启动界面下,都可以通过向kernel传递某级别参数而进入该级别。
3、阻止用户随意进入单用户模式
可以设置grub密码,防止用户随意进入单用户模式修改root密码。
首先生成一个密码的md5串:
[root@cluster01 ~]# grub-md5-crypt
Password:【此处输入的是明文密码,需要记住】
Retype password:
$1$WZFMF/$oHZWJn1A3xN.sU9ACi3Vp.【生成了密文密码】
接下来编辑grub.conf文件,增加一个password行:
[root@cluster01 ~]# vim /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_cluster01-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
password --md5 $1$WZFMF/$oHZWJn1A3xN.sU9ACi3Vp.
title Red Hat Enterprise Linux (2.6.32-431.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-431.el6.x86_64 ro root=/dev/mapper/vg_cluster01-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_cluster01/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=vg_cluster01/lv_root KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-431.el6.x86_64.img
这样,当系统启动到grub界面时,用户只有按下p键并输入正确密码【输入明文密码】,才可以编辑向内核传递的参数。
如图:
4、破解grub密码
思路就是,通过系统光盘,重启从光盘启动进入救援模式,然后修改grub.conf文件。
RHEL6进入救援模式的步骤暂时省略了。另一篇文章我已经记录了怎么进入救援模式。
进入shell命令行,提示符为bash-4.1#
执行chroot /mnt/sysimage/ 可以将根目录挂载到我们硬盘系统的根目录中去,切换到原根环境;
执行命令后提示符为sh-4.1#
此时vi /etc/grub.cof,删除password --md5这一行。
保存并退出。
重启系统,已经没有grub密码。
注意:
在sh-4.1#模式下需要先exit退出,回到bash-4.1#才可以reboot重启系统;