运行grub2-setpassword命令设置密码
grub2-setpassword
此过程创建一个包含哈希密码的文件/boot/grub2/user.cfg,此密码默认对应的用户为root,此用户在配置文件/boot/grub2/grub.cfg定义,如果要自定义用户名则需要如下操作:
编辑/boot/grub2/grub.cfg文件,找到下面配置段
### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
source ${prefix}/user.cfg
if [ -n "${GRUB2_PASSWORD}" ]; then
set superusers="root1"
export superusers
password_pbkdf2 root1 ${GRUB2_PASSWORD}
fi
fi
### END /etc/grub.d/01_users ###
修改root1
通过以上配置,如果修改引导菜单,则必须输入用户名和密码
如果要设置在开机时就需要输入用户名和密码,则还需要进行下面的配置:
编辑/boot/grub2/grub.cfg文件,找到下面配置段(引导菜单,以menuentry开头),删除第一行中的--unrestricted
menuentry 'CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-957.el7.x86_64-advanced-b7249802-a531-415d-96aa-c0df76974fa3' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_msdos
insmod xfs
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 --hint='hd0,msdos1' 02884580-da00-480c-ab79-9244660ec2c7
else
search --no-floppy --fs-uuid --set=root 02884580-da00-480c-ab79-9244660ec2c7
fi
linux16 /vmlinuz-3.10.0-957.el7.x86_64 root=/dev/mapper/centos-root ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8
initrd16 /initramfs-3.10.0-957.el7.x86_64.img
}
经过此设置,每次开机都会要求输入用户密码才能启动。
grub2-setpassword该工具已添加到Red Hat Enterprise Linux 7.2中,并已成为设置GRUB 2密码的标准方法。在以前版本的Red Hat Enterprise Linux中,您必须在/etc/grub.d/40_custom在/etc/grub.d/01_users文件中手动指定引导条目,并在文件中指定超级用户。