问题现象
通过ECS管理控制台修改root密码后,无法使用该密码登录该ECS实例。
可能原因
可能是该ECS实例账号对应的/etc/shadow或/etc/passwd文件属性配置错误,例如配置了i、a属性(表示不能删除、修改数据),导致修改账号密码不生效。
说明
Linux系统中的/etc/shadow文件用于存放账号信息,/etc/passwd用于存放密码信息。当/etc/shadow或/etc/passwd文件属性配置错误,可能导致实例的部分功能无法正常工作,例如修改root账号的密码不生效。
/etc/shadow或/etc/passwd文件常见属性说明如下:| 属性 | 说明 |
|---|---|
| i |
|
| a |
|
| u | 对文件或目录设置u属性,在删除时,其内容会被保存,以保证后期能够恢复,一般用来防止意外删除文件或目录。 |
| s | 对文件或目录设置s属性,在删除文件或目录时,会被彻底删除,不可恢复。 |
| e | Linux中绝大多数的文件都默认拥有e属性,表示该文件是使用ext文件系统进行存储的。 |
解决方案
您可以参考以下步骤,根据实际需要修改
/etc/shadow或/etc/passwd文件属性,来解决修改root账号的密码不生效等问题。说明 只有root用户才可以修改
/etc/passwd文件和/etc/shadow文件。- 使用root用户远程连接ECS实例。具体操作,请参见连接方式概述。
- 运行
lsattr [文件类型]命令,查看并确认/etc/shadow或/etc/passwd文件属性是否有误。若当前文件属性错误,请继续执行步骤3修改文件属性。
以本文描述的故障为例,若文件存在i或a属性(禁止修改数据),则有误。例如查看/etc/passwd文件:lsattr /etc/passwd
发现/etc/passwd文件具有i属性(禁止修改数据),导致修改密码不生效,需移除文件i属性,请执行步骤3。
- 使用
chattr命令修改/etc/shadow或/etc/passwd文件属性。chattr [+-=] [属性] 文件或目录名
说明针对上述修改密码不生效无法登录实例问题,可选择移除/etc/passwd的i属性来解决。chattr -i /etc/passwd
- +:为文件或目录添加属性。
- -:移除文件或目录已有的某些属性。
- =:为文件或目录设定一些属性。

