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