文档中心>云服务器>故障处理>实例相关故障>Linux 实例登录相关问题>Linux 实例:修改密码后无法使用修改后的密码登录

Linux 实例:修改密码后无法使用修改后的密码登录

最近更新时间:2024-12-11 16:28:02

我的收藏

现象描述

在腾讯云的 云服务器控制台 修改 root 密码后,无法使用新密码登录 CVM 服务器。

可能原因

可能是该 CVM 实例账号对应的 /etc/shadow/etc/passwd 文件属性配置错误。例如:配置了 ia 属性(表示不能删除、修改数据),导致修改账号密码不生效。此时,只能使用修改前的密码登录。
说明:
Linux 系统中的 /etc/passwd 文件用于存放账号信息,/etc/shadow 文件用于存放密码信息。当 /etc/shadow/etc/passwd 文件属性配置错误,可能导致实例的部分功能无法正常工作。例如:修改 root 账号的密码不生效。
/etc/shadow/etc/passwd 文件常见属性说明如下:
属性
说明
i
对文件设置 i 属性,不允许对文件进行删除、重命名,也不能添加和修改数据。
对目录设置 i 属性,只能修改目录下文件中的数据,但不允许新建和删除文件。
a
对文件设置 a 属性,只能在文件中新增数据,但是不能删除和修改数据。
对目录设置 a 属性,只能在目录中新增和修改文件,但是不允许删除文件。
u
对文件或目录设置 u 属性,在删除时,其内容会被保存,以保证后期能够恢复,
一般用来防止意外删除文件或目录。
s
对文件或目录设置 s 属性,在删除文件或目录时,会被彻底删除,不可恢复。
e
Linux 中绝大多数的文件都默认拥有 e 属性,表示该文件是使用 ext 文件系统进行存储的。

解决方案

您可以参考以下步骤,根据实际需要修改 /etc/shadow/etc/passwd 文件属性,来解决修改 root 账号的密码不生效的问题。
说明:
只有 root 用户才可以修改 /etc/passwd 文件和 /etc/shadow 文件。
1. 使用 root 用户修改前的密码通过终端连接 (SSH) 或免密连接 (TAT) 方式登录云服务器。
注意:
/etc/shadow/etc/passwd 文件属性错误导致修改密码不生效,但使用修改前的密码仍然可以正常登录。
如果忘记密码,可以通过免密连接 (TAT) 方式登录服务器,详细操作请参见 使用标准登录方式登录 Linux 实例(推荐)
2. 执行 lsattr [文件类型]命令,查看并确认 /etc/shadow/etc/passwd 文件属性是否有误。
以本文描述的故障为例,若文件存在 ia 属性(禁止修改数据),则有误。例如:
2.1 执行如下命令查看 /etc/passwd 文件属性。
lsattr /etc/passwd
2.2 发现 /etc/passwd 文件具有 i 属性(禁止修改数据),导致修改密码不生效,需要移除文件 i 属性。

3. 执行 chattr 命令修改 /etc/shadow/etc/passwd 文件属性。
chattr [+-=] [属性] 文件或目录名
说明:
+:为文件或目录添加属性。
-:移除文件或目录已有的某些属性。
=:为文件或目录设定一些属性。
针对上述修改密码不生效无法登录实例问题,可选择移除 /etc/passwdi 属性来解决,命令示例如下:
chattr -i /etc/passwd

4. 重新为云服务器 重置密码
5. 使用重置后的密码登录实例,如果可以正常登录,说明问题已解决。