目录
1、什么是grub加密
2、grub加密步骤
3、grub加密的lock属性
上篇文章说了,系统在开机的时候,有一个5秒的读秒时间,方便你进入到<code>grub</code>界面中。
如下图所示:

此时我们按下Enter键,就可以进入到<code>grub</code>界面中。
在选择框的正下方可以看到有几行提示:
可以看到提示,按<code>e</code>键就能编辑<code>grub</code>配置文件中的启动选项内容。
按<code>e</code>键,结果如下图:
提示再按<code>e</code>键可直接修改内容。
而<code>grub</code>加密,就是在上面第二张图的状态时,需要先输入我们设定的密码,才能按<code>e</code>键编辑系统启动参数。也就是说给<code>grub</code>设置一个密码, 避免像上边那样能够直接进入<code>grub</code>,并编辑其中的系统启动参数。
1)执行<code>grub-md5-crypt</code>命令成生md5密码。
执行命令:<code>[root@localhost ~]# grub-md5-crypt</code>
2)设置密码。
输入两次密码:
生成MD5加密的密码字符串:<code>$1$Y84LB1$8tMY2PibScmu0Cc8z8U351</code>
这样就把你输入的密码进行了MD5加密,用这个加密字符串来加密<code>grub</code>配置文件。
3)修改grub的配置文件。
一定在<code>timeout</code>属性之后,在<code>splashimage</code>属性之前,添加<code>password</code>选项,一定是这个顺序,放在其他位置不生效。
如下所示:
4)重启系统。
重启系统后,我们发现进入到<code>grub</code>界面中,下面的提示,原来的<code>e</code>键变成了<code>p</code>键。
我们再按<code>e</code>键都是没有反应的,按<code>p</code>键就会让你输入密码,不输入密码你就不能编辑<code>grub</code>的配置文件。
输入后按Enter键,才进入到可编辑的<code>grub</code>界面中,<code>e</code>键提示又出来了。如下图:
注意:
当你在第四步中第一个图的时候,就算你不知道密码,直接按Enter键,系统是可以直接启动的。所以说<code>grub</code>加密是对<code>grub</code>配置文件的编译进行了加密,而不是对系统的启动进行加密。
上面的加密步骤,是对<code>grub</code>菜单整体加密,整体加密后,如果想进入<code>grub</code>编辑界面必须输入正确的密码。同时也是不影响系统的正常启动的。
还有对单个启动菜单进行加密,但<code>grub</code>的编辑模式是不能锁定的,还是可以按<code>e</code>键进入编辑模式。而且进入编辑模式后,是可以删除<code>password</code>字段的,不是很好,所以不讲解了。
如果我想启动CentOS系统时,既需要<code>grub</code>的整体加密,又需要系统启动时输入正确的<code>grub</code>加密密码,才能正常启动系统。那应该怎么做呢?
很简单,方法如下:在<code>grub</code>的<code>/boot/grub/grub.conf</code>配置文件中,在<code>title</code>字段中加入<code>lock</code>,代表锁死,如果不输入正确的grub密码,系统是不能启动的。
<code>lock</code>这个属性千万不要添加,如果添加了<code>lock</code>属性在<code>grub</code>的配置文件中,当你在不输入密码的时候,直接按Enter键,是不能直接进入系统的,会报错,如下图:
提示了错误32,按任意键继续,就又回来了。
为什么一定不要添加<code>lock</code>的原因:
在系统启动的时候,进入到<code>grub</code>启动引导,此时系统还没有启动完成,网卡是还没加载生效,所以远程终端是连接不上服务器的,这时候就只能拿键盘做本地输入。但现在我们的服务器一般都放在机房或者远端,你会十分的不方便。所以坚决不能用<code>lock</code>锁定<code>grub</code>的配置文件。