有人可以使用grub轻松更改你的用户密码,从而危及Linux系统的安全性,所以你必须设置grub密码,本文介绍在Debian、Ubuntu和Kali Linux系统上用密码保护grub的方法。
用密码保护grub的方法 编辑文件: /etc/grub.d/00_header 输入以下内容创建密码: # grub-mkpasswd-pbkdf2 输入所需的密码。 这将生成一个长而加密的密码:
复制整个生成的代码。 使用vi或leafpad编辑文件/etc/grub.d/00_header: # vi /etc/grub.d/00_header 或者: # sudo leafpad /etc/grub.d/00_header 转到文件的末尾,在vi上使用G转到文件的末尾,如果在leafpad上滚动到文件的末尾。 输入以下: cat << EOF set superusers="username" password_pbkdf2 username 'paste the generated code copied above here' EOF 注:username意思是用户名,paste the generated code copied above here意思是粘贴上面复制的生成代码。例如,在我的情况下检查屏幕截图:
保存更改并退出编辑器并使用以下命令更新grub: # update-grub 或者: # grub-mkconfig -o /boot/grub/grub.cfg 要测试更改,请重新引导系统,如果上述操作过程成功,一旦选择要引导的grub条目,系统将提示你输入用户名和密码,输入那些信息,这可以保证grub更加安全。
忘记密码或密码无效的解决方法 另外,如果忘记密码或grub密码无法正常工作,则可以使用实时可启动闪存驱动器或DVD恢复更改。 启动gparted(安装请参考:GParted Live 0.32.0-1下载安装,磁盘分区工具且可作为系统维护盘)以检查安装了系统OS的分区(查看我的案例的屏幕截图):
使用以下命令装载Linux OS根分区: # sudo mount /dev/sda6 /mnt/ # cd /mnt/ 然后按原样输入以下命令: # for i in /sys /proc /run /dev; do sudo mount --bind "$i" "/mnt$i"; done 使用编辑文件/etc/grub.d/00_header: vi /etc/grub.d/00_header 删除它末尾添加的行,如下图:
更新grub: # update-grub 使用以下命令在主引导记录(MBR)中安装grub: # grub-install /dev/sda 再次更新grub以实现更改: # update-grub 重新启动系统,grub密码提示消失了。
相关主题 |