如果忘记了 root 密码, 可以透过修改 GRUB2 选单进入 single user mode 重设 root 密码。但这样只有有人可以在电脑面前, 就会很容易修改 root 密码。以下教学会示范设定 GRUB2 密码, 只有输入正确密码才可以编辑 GRUB2 开机选单的内容。
设定密码的第一步, 是先用 grub2-mkpasswd-pbkdf2 指令建立加密后的密码, 输入 grub2-mkpasswd-pbkdf2 指令后, 会要求输入两次密码, 这是登入 GRUB2 开机选单的密码:
# grub2-mkpasswd-pbkdf2
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.751694A0868FDA2393132C400AC6C04C5CC311DF7FDAFEBD7EBDE5F6D9D8D37505270A3D0CCDA189D78A80CEA05D0BC86C3AE8C25EAA0206BADF611713C7FE44.A847AF1CF40EE2C266C006383AC3C289E2260AED2D9D1C9E1BACA2579A06BD54F4E9BB2973B049AB3C8D96289C8DA204E2C6EC3E7E2E6895DBF82662BAD91D2B
Enter password:
Reenter password:
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.751694A0868FDA2393132C400AC6C04C5CC311DF7FDAFEBD7EBDE5F6D9D8D37505270A3D0CCDA189D78A80CEA05D0BC86C3AE8C25EAA0206BADF611713C7FE44.A847AF1CF40EE2C266C006383AC3C289E2260AED2D9D1C9E1BACA2579A06BD54F4E9BB2973B049AB3C8D96289C8DA204E2C6EC3E7E2E6895DBF82662BAD91D2B
grub2-mkpasswd-pbkdf2 指令回传的结果, 从 “grub.pbkdf2.sha512” 开始到结尾是加密了的密码, 这个需要复制下来。
然后开启 GRUB2 的设定档 /etc/grub.d/00_header:
# vi /etc/grub.d/00_header
在档案最后加入以下内容:
|
1 2 3 4 |
cat << EOF set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.751694A0868FDA2393132C400AC6C04C5CC311DF7FDAFEBD7EBDE5F6D9D8D37505270A3D0CCDA189D78A80CEA05D0BC86C3AE8C25EAA0206BADF611713C7FE44.A847AF1CF40EE2C266C006383AC3C289E2260AED2D9D1C9E1BACA2579A06BD54F4E9BB2973B049AB3C8D96289C8DA204E2C6EC3E7E2E6895DBF82662BAD91D2B EOF |
上面的 “root” 是登入 GRUB2 开机选单的使用者名称, 而 “grub.pbkdf2.sha512” 开头的一段字串, 是用上面用 grub2-mkpasswd-pbkdf2 指令建立的加密了的密码, 千万不要复制我的上去, 要用你自己建立的加密密码。
最后重新建立 grub.cnf:
# grub2-mkconfig –output=/boot/grub2/grub.cfg
之后开机时, 在 GRUB2 开机选单按 “e” 或 “c” 进入编辑模式时, 会要求输入使用者名称及密码。