大多数linux发行版使用GRUB 2作为引导加载程序。GRUB 2 (GNU Grand Unified Boot loader)是GNU项目中的一个引导加载程序包。
GRUB2提供两种类型的密码保护:
修改菜单条目时需要密码,但启动菜单条目时不需要密码;
修改菜单条目和启动一个、多个或所有菜单条目都需要密码。
设置修改菜单条目时的密码
使用 grub2-setpassword设置密码可以防止修改GRUB菜单条目,但是不能防止未经许可的启动。如果需要启动条目的时候也需要密码,需要修改grub配置文件。
在RHEL 7.2和centos7(及更高版本)上,GRUB 2使用grub2-setpassword命令提供密码保护。
[root @localhostgrub.d]# grub2-setpassword
Enter password:
Confirm password:
当在grub菜单里面按下 e或 c,编辑的时候,提示需要用户名和密码才能修改。
这个过程创建了一个/boot/grub2/user.cfg配置文件,其中包含已经加密的密码。这个密码的用户是root,在/boot/grub2/grub.cfg文件中已经定义了。通过此更改,在引导期间修改引导条目需要指定root用户名和密码。
设置修改菜单条目和启动菜单条目时的密码
编辑/boot/grub2/grub.cfg配置文件,搜索 10_linux关键字,然后修改下面 的条目,去掉 --unrestricted参数,这样开机就需要输入用户名和密码了。
[root @localhost~]# vim /boot/grub2/grub.cfg
修改前
去掉—unrestricted参数之后的配置
修改完成之后,保存退出,重启操作系统,启动系统的时候会提示输入账号密码。
如何把root用户修改成其他的用户?
Grub.cfg配置文件中默认设置的是root用户,我们可以更改成其他的用户。
编辑/boot/grub2/grub.cfg配置文件,搜索 01_users关键字,把root修改为其他的用户,这里修改成了”test”用户名。
如何删除密码?
想要删除密码,直接删除/boot/grub2/user.cfg文件就可以。
[root @localhost~]# rm -rf /boot/grub2/user.cfg
总结
可以使用grub的密码保护启动条目和修改条目菜单。grub2-setpassword工具是在RHEL7.2/Centos7.2中添加的,现在是设置GRUB 2密码的标准方法。