如何解决在 Linux 中使用 su root 修改密码失败的问题

简介

在 Linux 系统中,su root 命令常用于切换到 root 用户,而通过 passwd root 修改 root 密码也是管理员日常操作的一部分。然而,某些情况下你可能会遇到无法修改 root 密码的问题,例如“身份验证失败”或“密码未更改”的错误提示。这类问题通常与 root 账户被锁定、文件权限设置不当或文件系统设置为只读模式等因素相关。解决这些问题需要通过一些步骤来解锁 root 用户的密码文件、修复文件权限以及更新密码。

 

本文将详细介绍如何解决这些常见问题。我将通过逐步的操作,教你如何检查文件的权限设置、解除文件锁定并成功修改 root 密码。无论你是系统管理员还是 Linux 初学者,这些步骤都能帮助你恢复对 root 账户的访问权限,并确保今后遇到类似问题时能够快速解决。通过本教程,你将掌握修复常见 root 密码问题的技巧,提高你在 Linux 系统管理中的效率。

 

问题描述

使用 su root 命令时,如果提示“Authentication failure”(身份验证失败),无法切换到 root 用户,而使用 sudo passwd root 命令时,输入新密码后系统提示“password unchanged”(密码未更改),这些问题与 root 账户的权限设置、账户锁定或文件系统状态相关。

-

 

教程

检查root账户

我们先检查 root 账户是否被锁定,要检查 /etc/passwd 和 /etc/shadow

sudo lsattr /etc/passwd
sudo lsattr /etc/shadow

看到输出的结果显示为   ----i---------e-----,其中的 i 表示文件是不可修改的(immutable)

-

 

解锁 root 密码文件

接下来使用需要解锁这些文件,使用以下命令,移除文件的不可修改属性,允许修改

sudo chattr -i /etc/passwd
sudo chattr -i /etc/shadow

 

修改文件权限

解锁文件后,再对 /etc/passwd 和 /etc/shadow 的权限进行设置,这里我们设置为644,可读写权限即可。如果文件的权限不对,系统会拒绝修改密码

sudo chmod 644 /etc/passwd
sudo chmod 644 /etc/shadow

 

修改 root 密码

到了这步就熟悉了吧,直接修改密码吧

sudo passwd root

 

验证修改root密码成功

当密码被修改成功,系统则显示“password updated successfully

-

 

常见错误与解决方法

如果无法无法解锁文件

如果无法修改 /etc/passwd 或 /etc/shadow 文件的权限,是由于文件系统被挂载为只读模式。可以通过以下命令将文件系统重新挂载为读写模式

sudo mount -o remount,rw /

如果权限不足

如果没有 sudo 权限,那是没法来操作这些命令得,使用下面的命令检查

sudo -l
THE END