Ubuntu设置grub密码
来自三线的随记
默认情况下,启动操作系统后,按任意键可以进入GRUB菜单编辑页面
linux系统可以通过进入GRUB菜单编辑页面修改启动参数以获得重置root用户密码的权限
给Grub2设置密码:
通过grub-mkpasswd-pbkdf2命令生成加密密码
Your PBKDF2 is grub.pbkdf2.sha512.10000.BC4D0A450E86EE447561FC822C832xxxxxxxxxxxxx45572D3B4E40500CE
vi /etc/grub.d/00_header
cat<<EOF set superusers="leekwen" password_pbkdf2 leekwen grub.pbkdf2.sha512.10000.BC4D0A450E86EE447561FC822C832xxxxxxxxxxxxx45572D3B4E40500CE EOF
update-grub
这样重启后,在启动项时,按e后,就会让你输入:
username:
password:
只有用户名(比如我刚刚设置的用户名为:admin及密码正确后(刚刚用grub-mkpasswd-pbkdf2生成的密码),才可以进入启动引导,启动项这一步倒是安全了,记住,修改00_header后一定要运行“update-grub”命令,这样才能生效!
但是单纯这样设置,则会对所有启动项加密,也就是说每重启/开机一次就要输入账号密码一次,这样的结果并不是我们所需要的
改进:
给菜单添加–-unrestricted属性,拥有–unrestricted属性的菜单,任何人都可以boot,但是不能‘e’,即修改启动参数,如果需要修改启动参数,则需要账号密码
例:
[/etc/10_linux :129附近]
fi echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' --unrestricted {" | sed "s/^/$submenu_indentation/" else echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' --unrestricted {" | sed "s/^/$submenu_indentation/"