修改Linux ECS实例root密码后, 无法使用修改后的密码登录实例怎么办?

问题现象

通过ECS管理控制台修改root密码后,无法使用修改后的密码登录ECS实例。

可能原因

/etc/passwd/etc/shadow文件被配置为不可修改属性时,修改root密码可能不生效。

说明

Linux系统中的/etc/passwd文件用于存放账号信息,/etc/shadow文件用于存放密码信息。当/etc/shadow/etc/passwd文件属性配置错误,可能导致实例的部分功能无法正常工作,例如修改root账号的密码不生效。常见的文件属性可参见常见chattr属性说明

解决方案

  1. 使用root用户及修改前的密码登录实例。具体操作,请参见使用Workbench工具以SSH协议登录Linux实例

    重要

    必须使用原有效密码登录实例进行操作。如果密码失效,请通过 VNC 控制台登录。具体操作,请参见通过VNC连接实例

  2. 运行以下命令,验证文件属性状态。

    # 检查passwd文件属性
    lsattr /etc/passwd
    # 检查shadow文件属性
    lsattr /etc/shadow
    • 正常状态:应无特殊属性标志(如无ia)。

    • 异常状态示例:

      查看属性

  3. 如果文件属性为异常状态,运行以下命令,移除异常属性。

    # 移除passwd文件的不可修改属性
    chattr -i /etc/passwd
    
    # 移除shadow文件的仅追加属性
    chattr -a /etc/shadow
  4. 运行以下命令, 再次验证属性。

    lsattr /etc/passwd /etc/shadow

    预期输出应无ia标志。

  5. 重新在ECS控制台重置密码。具体操作,请参见重置实例登录密码

  6. 使用重置后的密码登录实例,若可以正常登录,说明问题已解决。

附录

常见chattr属性说明

属性

全称

作用描述

典型场景

i

Immutable

文件不可修改:禁止任何写入、删除、重命名或链接操作。

防止系统关键文件被篡改。

a

Append Only

仅追加模式:允许在文件末尾追加内容,但不可修改现有内容。

保护日志文件完整性。

e

Extent Format

表示文件使用extents映射磁盘块(现代文件系统默认属性,无需手动修改)。

系统自动管理。

A

No Atime Updates

禁用访问时间更新,减少磁盘I/O。

高并发服务器优化。