我目前正在双启动我的一台笔记本电脑,但我希望 Linux 发行版几乎完全隐藏。到目前为止,我已经能够做到这一点,因此您必须按 Shift 键才能显示 grub 菜单,并且我已经加密了我的 Linux 根分区(我没有主分区)。我听说您可以为特定操作系统分配密码,但我对如何操作有点困惑。
我可以让 Windows 不需要登录吗?
如何使只有我的 Linux 操作系统受到密码保护?
(注:我使用的是带有 Zorin OS 15 Core 的 Windows 10)
编辑:我不是在谈论 Windows 登录,我的意思是,我可以拥有它吗,这样 grub 就不需要我登录来访问 Windows(在 grub 菜单中),但我仍然需要登录 grub 才能访问佐林。另外,我试图阻止进入我的 Zorin 根分区的人并不是特别聪明,所以我并不关心他们是否可以使用实时 USB 或其他东西来进入它。
答案1
设置管理员用户和密码将限制任何其他用户使用菜单项、编辑菜单项以及使用 grub 控制台。添加--unrestricted
到menuentry
允许任何用户使用该菜单项而无需输入用户名/密码,并且添加--users
用户名列表允许其他用户访问menuentry
.
对于最小设置,您需要添加一个带有密码的超级用户,并将其添加--unrestricted
到生成 Windows 菜单条目menuentry
中。/etc/grub.d/30_os_prober
编辑
/etc/grub.d/30_os-prober
,找到menuentry
负责 Windows 条目并添加--unrestricted
到此菜单条目。就我而言,我搜索了该字符串Windows
并编辑了下一menuentry
行。编辑后的块现在看起来像这样:cat << EOF menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' --unrestricted $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' { EOF
将您的密码添加到以下内容的末尾
/etc/grub.d/30_os-prober
:cat << EOF set superusers="freddy" password freddy 1234 EOF
/etc/grub.d/
请注意,我们使用哪个配置文件作为密码并不重要。我们也可以使用00_header
or10_linux
来代替。如果您想加密您的密码,请运行
grub-mkpasswd-pbkdf2
,输入您的密码两次,然后使用生成的字符串grub.pbkdf2.sha512.10000.<a_very_long_string>
作为您的密码。密码输入必须以以下字符开头,password_pbkdf2
而不是password
:password_pbkdf2 freddy grub.pbkdf2.sha512.10000.68B90AFC[...]86858AF939
跑步
sudo update-grub
更新 grub 并检查您生成的 Windows 条目是否
/boot/grub/grub.cfg
具有该--restricted
标志。生成的30_os-prober
-block 应类似于以下内容:### BEGIN /etc/grub.d/30_os-prober ### menuentry 'Windows 10 (on /dev/sda1)' --unrestricted --class windows --class os $menuentry_id_option 'osprober-chain-A25E43975E436361' { insmod part_msdos insmod ntfs set root='hd0,msdos1' if [ x$feature_platform_search_hint = xy ]; then search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 A25E43975E436361 else search --no-floppy --fs-uuid --set=root A25E43975E436361 fi parttool ${root} hidden- drivemap -s (hd0) ${root} chainloader +1 } set superusers="freddy" password freddy 1234 ### END /etc/grub.d/30_os-prober ###
重新启动并测试。
相关链接:
- GRUB 中的身份验证和授权(GRUB 手册)
- Grub2/密码(Ubuntu 文档和示例)