如何解决在 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