有时候出现 chage: cannot open /etc/passwd
报错时,即使拥有 root 权限,也无法修改用户密码,原因可能是 /etc/passwd 文件的 i 属性被设置了。
i 属性是一种特殊的文件属性,表示文件被锁定,具有不可写特性,只能由特权用户修改或删除。当 /etc/passwd 文件的 i 属性被设置后,即使以 root 权限登录系统,也无法修改该文件。
此时,我们需要使用 chattr 命令来更改 /etc/passwd 文件的属性,具体方法如下:
-
以 root 权限登录系统,在终端或命令行中输入以下命令,以获取 /etc/passwd 文件的当前属性:
lsattr /etc/passwd
如果该文件的 i 属性为
i
(即锁定状态),则需要使用 chattr 命令来更改属性。 -
输入以下命令,以更改 /etc/passwd 文件的属性:
chattr -i /etc/passwd
该命令将 /etc/passwd 文件的 i 属性设置为可变状态。
-
现在可以使用 chage 命令修改用户密码了,修改完成后再次设置 /etc/passwd 文件的 i 属性,以保证系统安全。
chattr +i /etc/passwd
通过上述步骤,我们可以使用 chattr 命令来解决由于 /etc/passwd 文件的 i 属性所导致的无法修改用户密码的问题。