gurb

在说怎么设置CentOS7之前,首先我们先了解一下什么是grub。

GNU GRUB(GRand Unified Bootloader简称“GRUB”)是一个来自GNU项目的多操作系统启动程序。GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统。GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数。

centos 重启时进入GRUB引导菜单 centos启动grub_linux


启动时,这一阶段就是加载了grub系统启动程序。第一项是正常启动系统,第二项是恢复启动系统。

为什么要给grub设置密码呢?

其实大多都是为了安全考虑,比如:防止他人修改grub,以单用户模式启动,又或者防止其他人通过grub更改root密码等。这些操作都是没有权限限制的,若没有配置相应的安全措施,服务器很容易就被恶意篡改。

gurb明文密码配置

环境需求:一台centos7即可

1.使用root用户登录系统

注:又或者说是有root权限的用户,修改系统数据,普通用户无权限

2.备份grub配置文件

CentOS7中,grub的配置文件已经从之前版本的grub升级到了grub2。
备份的目的:防止配置错误可以恢复

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

3.以明文的方式设置grub密码

在/etc/grub.d/01_users文件中指定超级用户,其中root为超级用户的用户名,mima.com为超级用户root的密码,清空该文件并添加以下几行。

vim /etc/grub.d/01_users #这是源文件内容
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
  source \${prefix}/user.cfg
  if [ -n "\${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root \${GRUB2_PASSWORD}
  fi
fi
EOF

将其更改为

#!/bin/sh -e
cat << EOF
set superusers="root"	#用户名
password root mima.com	#密码
EOF

4.重新编译生成grub.cfg文件

如果是以BIOS启动方式,则使用下面命令:

grub2-mkconfig -o /boot/grub2/grub.cfg

如果是以UEFI启动方式,则使用下面的命令:

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

5.查看配置结果

重启CentOS7

centos 重启时进入GRUB引导菜单 centos启动grub_linux_02


press e to edit the selected item,or c for a command prompt

按e键编辑所选项目,或按c键编辑命令提示符

按e编辑

centos 重启时进入GRUB引导菜单 centos启动grub_用户名_03


进入了验证界面,验证成功进入grub编辑,验证失败返回grub界面。

grub密文密码配置

1.使用grub2-mkpasswd-pbkdf2命令创建密文

[root@linus ~]# grub2-mkpasswd-pbkdf2 
输入口令:
Reenter password: 
PBKDF2 hash of your password is 	grub.pbkdf2.sha512.10000.08452321871F76FE2D55D94F7C89E3CDEF1635066E11C2ADCFAA3B728A551C9FB35EB7DBAF2501F544CA5B38D48E6D8C0FB4FC23AD354B9A3A1A17809C9D89DF.B9CA69BC3310E9528AF78564627624B4EA60E5518300A1E70AD77107205AF035D2E720F8C0D7A392BD591C1B09BEB122FAA1DEBC5C303D63F835C03E85BC847A

注:is后面的那一段字符串就是密码的PBKDF2加密序列

2.修改/etc/grub.d/01_users

vim /etc/grub.d/01_users 
#!/bin/sh -e
cat << EOF
if [ -f \${prefix}/user.cfg ]; then
  source \${prefix}/user.cfg
  if [ -n "\${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root \${GRUB2_PASSWORD}
  fi
fi
EOF

删除中间的内容,添加两行内容,并将密码的PBKDF2加密序列粘贴在后面。

#!/bin/sh -e
cat << EOF
set superusers="root"
password_pbkdf2 root
grub.pbkdf2.sha512.10000.08452321871F76FE2D55D94F7C89E3CDEF1635066E11C2ADCFAA3B728A551C9FB35EB7DBAF2501F544CA5B38D48E6D8C0FB4FC23AD354B9A3A1A17809C9D89DF.B9CA69BC3310E9528AF78564627624B4EA60E5518300A1E70AD77107205AF035D2E720F8C0D7A392BD591C1B09BEB122FAA1DEBC5C303D63F835C03E85BC847A
EOF

3.重新编译生成grub.cfg文件

如果是以BIOS启动方式,则使用下面命令:

grub2-mkconfig -o /boot/grub2/grub.cfg

如果是以UEFI启动方式,则使用下面的命令:

grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

4.查看配置结果

重启CentOS7

centos 重启时进入GRUB引导菜单 centos启动grub_重启_04


按e编辑

centos 重启时进入GRUB引导菜单 centos启动grub_用户名_03


进入了验证界面,验证成功进入grub编辑,验证失败返回grub界面。