为Linux设置GRUB密码

3f15f8e3c5f132756a79d57cf1561c4c.gif

正文共:999 字 11 图,预估阅读时间:1 分钟

我们前面介绍了如何恢复root密码CentOS 7.9遗忘了root密码怎么办?,虽然简单好用,但是可能会被不法分子利用,造成root密码以及重要信息泄露。那有没有办法保护GRUB引导呢?当然有了!

GRUB(GRand Unified Bootloader,大统一引导加载程序)的主要配置文件是GRUB.cfg,它位于/boot/grub2目录中,它包括几个配置指令、值和参数。

a42f26a47b82ba425185f6d3a8003b07.png

通常,用户只需要添加、删除或更新此文件中的特定指令或字段。例如,我们本次就希望添加在引导加载程序屏幕上提供身份验证功能的指令,以确保故障排除选项的安全。注意:不建议非专业人员修改这些配置文件,GRUB.cfg文件中的一个小错误都可能导致系统完全无法启动。

不过,Linux提供了一种更好的方法来配置该文件中的指令。它将GRUB配置分成了几个部分,并将它们作为/etc/grub.d/目录中的单独文件提供。

d7829edc7da35cc3f2e3700bf255acab.png

这些文件可以单独编辑,以添加、更新或删除特定部分中的特定功能。然后,我们可以从这些文件构建出一个新的配置文件。一旦建立了新的配置文件,就可以用新文件替换现有文件。

文件00_*用于保留给00_header,文件10_*表示本机启动条目,文件20_*表示第三方应用程序,文件40_custom用于管理身份验证功能,接下来,我们使用推荐的方法在配置文件中添加身份验证功能,而不是直接编辑。

我们先看一下文件40_custom的内容。

11e1545c36060cc19d192bd6f68bccaf.png

在GRUB中添加此功能之前,我们先备份现有的GRUB.cfg文件。

mkdir /backup
cp /boot/grub2/grub.cfg /backup/
ll /backup/

c8e8c98d749a45e8448a43e5283e0e1c.png

如果我们要在引导加载程序屏幕上验证GRUB选项的访问,一般是在配置文件中指定用于设置用户名和密码,命令如下:

set superusers=“[User Name]”
password [User name] [Password]

例如,要设置用户名“tietou”和密码“qwe123”,则在文件中增加如下配置:

set superusers=”tietou”
password tietou qwe123

b9d9f8333d6fbb0d368dbc0793d5db51.png

如果我们感觉将密码存储为明文不安全的话,我们还可以使用GRUB提供的加密文本密码的命令grub2-mkpasswd-pbkdf2,以生成系统支持的加密密码。

例如我们要使用工具加密密码qwe123,建议另外打开一个终端并运行以下命令:

grub2-mkpasswd-pbkdf2

根据提示输入并确认所配置的密码,即使输入相同的密码,每次HASH计算的结算也不相同。

322ad29243ac24aae7513d20a9c92a92.png

然后我们需要将“PBKDF2 hash of your password is”后面以“grub.pbkdf2.sha512”开头的哈希密码复制粘贴到40_custom文件中的文本密码位置。格式如下:

password_pbkdf2 [user name] [hashed string]

那么原本的password tietou qwe123就变成了password_pbkdf2 tietou grub.pbkdf2.sha512.10000.85E17FA746587893A1ACB011C53A80E491FEC781314AFAFFD7A017C86808A12D20B9CA8F3C4E0A1E8EC2FAAAD6136FBBFE30F1D575A460B7C6097BF962E1942A.3DA8A6E6C02C2E6129A2AE8D5D2F338C34C373C3D608EFC6DB65F5A84CCBF76B956E4215FAC236B5EEE1E1867AE64E682198145F67D030E2A9CF455C7DBD4D53

6e96a9e8c2d8783cff5a1c2c6427dafe.png

需要注意的是:在实际配置时,我们只能配置使用一种类型的密码。要么使用password [user name] [text string]格式的文本密码,要么使用password_pbkdf2 [user name] [hashed string]格式的哈希密码。

在40_custom文件中添加配置完成后,运行以下命令从/etc/grub.d/目录中的所有可用配置文件在/root/目录中创建新的主配置文件grub.cfg。

grub2-mkconfig -o /root/grub.cfg

然后验证我们所做的更改是否已合并到新的配置文件中。

grep tietou /root/grub.cfg

确认无误后,用新的配置文件替换现有的grub.cfg文件。

cp /root/grub.cfg /boot/grub2/

b26b73cb7d768066632a613faf5ae5e3.png

最后,我们重新启动系统,在引导加载程序屏幕上,按“e”键访问grub选项。

94d5dee15dbd63515d9855388d15f24f.png

这一次,需要进行身份验证才能访问grub选项,使用我们在40_custom文件中设置的用户名和密码进行身份验证。

75f4747fb9711334d92fe9508dd6ebef.png

验证通过后,可以正常进入GRUB配置修改页面。

42588e3c0a22ce78d406ad451f72de4c.png

如果验证失败,则会重新回到引导选择页面,不影响系统引导。

现在,我们已经成功地配置了GRUB密码,可以保护引导加载程序屏幕上可用的故障排除选项。

72b778025d5688308ad1bebd561b6cad.gif

长按二维码
关注我们吧

0716626fe2a87395d085fcbb5b8400be.jpeg

6c5328119280c22bc734286cfc3d30b8.png

网络之路11:认识网络设备模拟器HCL

Part 11 防火墙的安全业务检测

Part 12 防火墙DPI与负载均衡

为什么8.8.8.8从全球访问都很快?

DNS被劫持是什么意思?DNS被劫持有什么解决方案?

BGP 路由反射:全互联内部 BGP (IBGP) 的替代方案

什么是OpenStack?

网络之路1:初识网络

最小化安装的CentOS7部署KVM虚拟机

通过命令行配置调整KVM的虚拟网络

CentOS和OpenEuler转发性能对比

在笔记本上装完KVM,发现VirtIO的性能比E1000高出不少

VMware ESXi 6.7可以成功识别机械硬盘了

CentOS 7.9遗忘了root密码怎么办?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/45946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速读出linux 内核中全局变量

查问题时发现全局变量能读出来会提高效率,于是考虑从怎么读出内核态的全局变量,脚本如下 f open("/proc/kcore", rb) f.seek(4) # skip magic assert f.read(1) b\x02 # 64 位def read_number(bytes):return int.from_bytes(bytes, little,…

【FineReport的详细使用教程】

前言: 💞💞大家好,我是书生♡,今天主要和大家分享一下,BI报表中的FineRoport 的详细使用,以及它的优势!!!希望对大家有所帮助。 💞💞代…

C# Winform布局控件的几种方式

在 C# WinForms 应用程序中,布局控件和布局管理器可以帮助开发者创建响应式的用户界面,即使在窗口大小改变时也能保持控件的正确位置和尺寸。 通常我们采用Panel和Dock,辅助Anchor实现类似如下的布局。 以下是几种常见的布局控件和方法&…

计算机网络通信

1、最原始的hub结构 2、局域网的交换机:mac和交换机端口路由表-数据链路层 mac地址 3、不同局域网之间进行通信,主要是路由器-网络层-ip 源ip到目标ip的不变化,但是mac地址在一直变化

Linux--信号量

线程系列: Linux–线程的认识(一) Linux–线程的分离、线程库的地址关系的理解、线程的简单封装(二) 线程的互斥:临界资源只能在同一时间被一个线程使用 生产消费模型 信号量 信号量(Semaphore)是在多线程…

基于PyTorch深度学习实践技术应用

近年来,Python语言由于其开源、简单等特点,受到了广大程序开发者的偏爱,丰富的函数库使得其在各行各业中得到了广泛的应用。伴随着新一轮人工智能(尤其是深度学习)的快速发展,许多深度学习框架应运而生&…

通义千问Qwen-VL-Chat大模型本地训练(二)

目录 前言 环境准备 软件安装 数据准备 模型训练 模型名称修改 数据集修改 模型参数修改 数据读取编码修改 output_dir修改 模型调用 验证 小结 前言 人工智能大模型是一种能够利用大数据和神经网络来模拟人类思维和创造力的人工智能算法。它利用海量的数据和深度学习技…

中职网络安全B模块Cenots6.8数据库

任务环境说明: ✓ 服务器场景:CentOS6.8(开放链接) ✓ 用户名:root;密码:123456 进入虚拟机操作系统:CentOS 6.8,登陆数据库(用户名:root&#x…

【C++深度探索】全面解析多态性机制(二)

🔥 个人主页:大耳朵土土垚 🔥 所属专栏:C从入门至进阶 这里将会不定期更新有关C/C的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 前言 我…

Debezium日常分享系列之:Debezium 3.0.0.Alpha1 Released

Debezium日常分享系列之:Debezium 3.0.0.Alpha1 Released 一、重大改变Java 和 Maven 要求已更改 二、新的特征和提高MongoDB 三、更多内容 Debezium 3 的第一个预发布版本 3.0.0.Alpha1。这个版本虽然比正常的预版本要小,但高度关注几个关键点&#xff…

《财经日报》︱揭秘随身WiFi市场乱象与格行的破局之路 格行如何树立行业清流新标杆? 随身WiFi真的靠谱吗?

在移动互联网高速发展的今天,随身WiFi以其便捷性和高性价比迅速成为市场宠儿。然而,随着行业的迅速扩张,一系列乱象与套路也逐渐浮出水面:从虚假宣传到限速虚量,随身WiFi行业中的种种套路让消费者防不胜防。商家利用信…

c语言题目之求两个整数的二进制位数的不同个数

文章目录 一、题目二、分析三、代码实现 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 二、分析 首先看到这道题我们是求两个整数的二进制位不同位的个数,在操作符中我们详细学到到了按位操作符相关的内容,首先看到要…

三相感应电机建模仿真(5):考虑铁耗时静止dq坐标系的数学模型及其仿真模型

1.概述 2.考虑铁耗时的三相感应电机数学模型 3.考虑铁耗时的三相感应电机仿真模型 4.仿真实例 5.总结 6.参考文献 1.概述 电机的铁心损耗主要包括涡流损耗和磁滞损耗,这些损耗以热的形式消耗能量,减少了电动机的有效输出功率,对电机效率产生影响;铁心损耗会导致电机内…

【教程】Vue2中使用svg矢量图

1.npm导包 npm i svg-sprite-loader --save2.创建目录放入svg文件,创建SvgIcon.js 3.SvgIcon.js const req require.context(./svg, false, /\.svg$/) const requireAll requireContext > requireContext.keys().map(requireContext) requireAll(req)4.vue.c…

【前端】零基础学会编写CSS

一、什么是CSS CSS (Cascading Style Sheets,层叠样式表)是一种是一种用来为结构化文档(如 HTML 文档)添加样式(字体、间距和颜色等)的计算机语言,能够对网页中元素位置的排版进行像素级别的精…

【数据结构取经之路】二叉搜索树的实现

目录 前言 二叉搜索树 概念 性质 二叉搜索树的实现 结点的定义 插入 查找 删除 二叉搜索树完整代码 前言 首先,二叉搜索树是一种数据结构,了解二叉搜素树有助于理解map和set的特性。 二叉搜索树 概念 二叉搜索树又称二叉排序树&#xff0c…

【Caffeine】⭐️SpringBoot 项目整合 Caffeine 实现本地缓存

目录 🍸前言 🍻一、Caffeine 🍺二、项目实践 2.1 环境准备 2.2 项目搭建 2.3 接口测试 ​💞️三、章末 🍸前言 小伙伴们大家好,缓存是提升系统性能的一个不可或缺的工具,通过缓存可以避免大…

java基础之接口

接口和抽象类很像,接口是把行为给抽象化,可以理解成一个抽象类抽象到极致的情况下,形成的类,也就是一个抽象类有且只有抽象方法的时候,就可以用接口来写。 一、抽象类与接口在书写上的异同 这是一个抽象类 public abst…

五、 计算机网络(考点篇)

1 网络概述和模型 计算机网络是计算机技术与通信技术相结合的产物,它实现了远程通信、远程信息处理和资源共享。计算机网络的功能:数据通信、资源共享、管理集中化、实现分布式处理、负载均衡。 网络性能指标:速率、带宽(频带宽度或传送线路…