在使用LInux系统的时候可能会发生忘记root密码的情况,通常管理员会进入单用户模式下进行重置root密码。那么问题来了,既然管理员可以进入单用户模式,如果恶意用户可以接触的到计算机的话毫无疑问也是可以进入单用户模式然后偷偷篡改你的root密码,如此一来岂不是很不安全了。后来人们觉得通过单用户更改root密码这件事上不能随随便便的让不相关的人操作,于是加了一个二次认证授权过程,也就是在进入单用户模式的过程中间加上一层GRUB密码认证。(以下操作环境为RHEL6)
一、 配置添加grup密码,观察/etc/grup.conf文件
其中,在splashimage下面的一行添加为全局密码,在title下面的一行添加为菜单密码,有两种设置密码的形式分别为明文和MD5密文。显而易见明文密码是可以被恶意用户查看grub.conf配置文件查看到的,所以推荐使用MD5加密密码,两种不同密码的设置格式如下
明文设定
MD5密文设定
md5密文设定需要在/etc/grup.conf文件中填入密码前生成一个MD5密码,具体的生成需要借助grub-md5-crypt命令来完成,这里生成两次是因为一次md5密码交给全局密码使用,另一次是交给菜单密码使用。
拿到了md5密码后把它们添加到/etc/grub.conf文件中,格式与填写明文密码略有不同,需要加一个–md5选项,这里需要注意的是copy密码的时候不要漏掉字符以及一定要加–md5选项。
接下来reboot重启,我们进入单用户模式下看看grub密码是否生效了。
二、进入单用户模式尝试通过GRUB认证以修改root密码
重新启动系统,根据提示按P进入输入全局密码页面
发现下图中多了很多选项,根据提示按“e”进入编辑
选中下图的kernel一行,继续按“e”编辑
在最后一行的最后添加single然后回车,返回上层页面
然后继续按“b”进入单用户命令行模式
此时已经出现要求输入菜单密码的界面
继续输入菜单密码,才可以进入命令行模式。
至此,经过两次GRUB密码的认证才正式进入到了单用户模式,才可以进行root密码的修改。
注意,当设置了菜单密码的时候每次启动系统都需要输入一次菜单密码,请根据具体情况判断是否需要同时设置两个密码。