RedHat7.0防止破解Root密码Grub设置密码和加密
1.什么是Grub
当我们按下开机键的时候,首先BIOS加电自检,检测到各种硬件没问题的话,则会激活硬盘的MBR(激活了446B的数据)(把引导权交给硬盘的MBR)。然后把内核引导起来
操作系统来说,最核心是“内核”
内核是一款用C语言写出来的软件(类似于QQ这样的软件)
这个BootLoader主要作用就是把系统引导起来,实际上就是加载内核,所谓内核就是用C语言写的一个软件而已。不管系统启动不启动,他总是存储在某个分区里的,假设就存储在sda1里。
每个分区都是有fs的,只有内核运行的时候,才能识别fs。
BootLoader要加载内核,必须要能访问sda1,要能访问sda1则需要识别xfs,要识别xfs前提是内核必须已经运行了。
BootLoader实际上是从grub里stage1这段代码汇编出来的,作用就是用来加载第二个扇区。
第二个扇区里是有grub里stage1.5汇编出来的一段代码,作用是加载第3个~n个扇区。
第3~n个扇区里存储是 极精简的fs。但是可以让我们读懂fs了。
1.2、Grub设置
代码片
[root@localhost /]# cd /etc/grub.d/
进入任意一个文件
代码片
[root@localhost /]# vim 00_header
1.3、编写Grub文件末尾
代码片
cat <<EOF
set superusers="ax" #用户名ax
password ax redhat #用户名ax 密码redhat
EOF
1.4、重新生成Grub.cfg
代码片
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
1.5、重启
进入Grub菜单按E,要求输入密码
2.Grub加密
2.1、密码加密
下面展示一些 代码片
。
[root@localhost ~]# grub2-mkpasswd-pbkdf2
通Pbkdf2哈希进行加密
将加密进行复制
2.2、编写Grub文件末尾
进入任意文件进行编写
cat <<EOF
set superusers="ax"
password_pbkdf2 ax grub.pbkdf2.sha512.10000.ECC276D4A3DB7C1BAC94FC21539D69A195B9ED008A50D28C01B2CB56D81AB144C95D2B8F60DD1B97D60FE9C0E5EE9C85E14DD14E858ACC311BDA464A9023A4F8.9229B1037966E95F04778DE91576A7E4EF54A137A69CDDD24E23E4E26DF0D0E6D5D3A790ABA2010990F46927202CBF1EE8EEFC4051A3E3CD17B6C12FFC05E8C3
EOF
# 将刚才的复制的加密密码放在ax用户后面
2.3、重新生成Grub.cfg
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg