重置root用户密码

本文介绍了Linux系统中root用户的重要性和保护其密码的必要性,包括防止未授权访问、保护数据安全和维护系统稳定性。此外,文章详细讲述了如何设置和加密GRUB密码,以及在忘记root密码时的两种重置方法,包括在GRUB编辑模式和Shell引导界面下的操作步骤。
摘要由CSDN通过智能技术生成

一、前言

1、root用户的重要性

        系统安全:root用户是Linux系统中的超级用户,拥有对系统的完全控制权。如果root密码被恶意用户获取,他们就可以完全控制整个系统,包括读取、修改或删除任何文件,安装或卸载软件,甚至改变系统配置。因此,一个强大且复杂的root密码是保护系统免受未授权访问和潜在破坏的第一道防线。
        数据保护:系统中的重要数据,如用户信息、配置文件、业务数据等,都可能被恶意用户通过root权限进行窃取或篡改。一个安全的root密码可以确保这些数据不被非法访问。
        服务稳定性:如果root密码被滥用,恶意用户可能会关闭重要的系统服务,导致服务中断,影响业务的正常运行。一个安全的root密码可以防止这种情况的发生。
        合规性要求:许多企业和组织都有严格的安全政策和合规性要求,其中包括对root密码的管理和保护。符合这些要求有助于维护企业的声誉和避免潜在的法律风险。
        因此,为了确保系统的安全和稳定,以及保护重要数据,必须设置一个强大且复杂的root密码,并定期更换。同时,还应采取其他安全措施,如使用密钥认证、限制root登录方式、监控和审计系统日志等,以进一步提高系统的安全性。

2、GRUB 概述

        在系统启动过程中,从引导装载程序开始,到装载内核之前都由GRUB负责。内核被保在/boot/,通过GRUB 将内核装载到内存。GRUB 全称GRand Unified Bootloader,作为一种多重操作系统启动管理器。除引导Linux之外,也可在多操作系统共存时管理多重操作系统的引导。可对GRUB进行配置管理来实现对系统启动选项的控制,干预系统的启动。

二、忘记root密码

1、设置GRUB主要环境

vim /etc/default/grub进入主要环境编辑。

设置进入默认启动项的等候时间GRUB_TIMEOUT=5改为GRUB_TIMEOUT=-1,即每次启动时需手动确认。

执行grub2-mkconfig -o /boot/grub2/grub.cfg命令更新 GRUB 配置文件。reboot重启虚拟机。

如下图所示最下面一行已无倒计时显示:

2、设置GRUB密码

由上例得知,任何人不需密码都能进入GRUB编辑模式,这具有相当大的安全隐患,为此可以设置GRUB口令,只有拥有口令的用户才能修改GRUB参数。方法是修改GRUB配置文件,设定密码,以防止非法者进行GRUB 编辑。

设置GRUB明文密码:


(1)编辑/etc/grub.d/00_header 文件

在末尾添加以下内容后保存该文件:
cat << EOF
set superusers="admin''

password admin <密码>

EOF

保存并退出。

(2)执行grub2-mkconfig 命令重新生成grub.cfg文件:
grub2-mkconfig -o /boot/grub2/grub.cfg

reboot重新启动系统。

(3)在GRUB开始界面中按下<e>键进入GRUB编辑模式。

输入用户和密码。

可以进入到如下界面即成功:

以上设置的密码是明文的,GRUB 可对这个密码进行加密。

加密GRUB密码:

使用工具grub2-mkpasswd-pbkdf2生成加密的密码:

复制/etc/grub.d/00_header 文件的password语句中的密码。

执行vim /etc/grub.d/00header命令编辑/etc/grub.d/00header 文件。

将/etc/grub.d/00_header 文件的password语句中的密码更换成上述以grub.pbkd2sha
开头的密文。如下图所示再在开头加上password_pbkdf2 admin

保存并退出。

最后执行grub2-mkconfig命令重新生成 grub.cfg文件。reboot重启虚拟机。

同样输入用户和密码。

可以进入到如下界面即成功:

三、重置root密码

一旦忘记root用户密码,就无法执行任何面向整个系统的变更工作。不过Linux中很容
易使用root账户重置密码。具体方法如下。

1、方法一

(1)启动系统进入GRUB2界面后,按下<e>键进入GRUB 编辑模式。
(2)按向下箭头找到以 linux16开头的那一行,在行尾先输入一个空格,再输入
“rd.break console-tty0"或者“rd.break enforcing=0”。

(3)按<Ctrl>+<x>组合键启动系统。

(4)执行以下命令重新挂载文件系统:mount -o remount,rw /sysroot

(5)执行以下命令改变系统目录为临时挂载目录:
chroot /sysroot

(6)执行passwd命令修改root密码。

(7)在根目录下创建相关文件(用于重新标记SELinux环境值):
touch /.autorelabel

(8)执行exit 命令退出chroot环境,再执行exit重启系统。

(9)测试是否重置root密码成功:

切换到root用户,输入上文新设置的root用户密码,若切换成功,即root密码重置成功。

2、方法二

如果在VMWare 虚拟机上操作不成功,可以尝试将linux16开头的那一行中的“rhgb quiet”
先删除。
rd.break 这种方法一般用于修改root 密码或者出现重大问题,临时中断运行,未装载任
何文件系统,比上述救援模式还要精简。
如果使用rd.break不能进入系统启动,则可以向内核传递“init=/bin/bash”参数,使用Shell 替代默认的daemon 进程来重置root密码。

参照上一小节的操作进入Shel引导界面,再继续以下步骤。

(1)执行以下命令以可写方式重新挂载根目录:
mount -o remount,rw /

(2)执行以下命令修改root密码:
passwd root

(3)如果系统启动了SELinux,必须执行以下命令,否则将无法正常启动系统:
touch /.autorelabel

(4)执行excc /sbin/init 命令启动系统,或者执行exec/sbin/reboot命令重启系统。

(5)同样测试是否重置root密码成功:

切换到root用户,输入上文新设置的root用户密码,若切换成功,即root密码重置成功。

感谢您的阅读,希望此文章对您有所帮助!

  • 15
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值