现象
linux上修改密码失败,提示 chpasswd: cannot open /etc/passwd ,出现这种情况一般是/etc/passwd文件受保护,我们可以查询下etc/passwd文件属性:
lsattr etc/passwd
i (不可更改): 表示文件或目录不能被修改、重命名、删除、链接或者创建任何新的硬链接。只有超级用户或特权用户才能够设置或者清除这个标志。
使用 chattr -i 修改文件属性
先切换到管理员账号,然后输入下面指令
chattr -i etc/passwd
重新增加 i 属性
修改完密码,可以重新加上i属性
chattr +i etc/passwd
备注
受保护的文件可能不止 etc/passwd 一个,通常有 /etc/passwd /etc/shadow 等
-- 查询多个文件属性
lsattr etc/passwd /etc/shadow
-- 更改文件属性
chattr -i etc/passwd /etc/shadow
-- 修改密码后,改回文件属性
chattr +i etc/passwd /etc/shadow