共计 1001 个字符,预计需要花费 3 分钟才能阅读完成。
今天准备修改 Linux 系统的 root 用户密码时,执行 passwd root,出现了以下情况,修改密码失败:
# passwd root | |
Changing password for user root. | |
New password: | |
Retype new password: | |
passwd: Authentication token manipulation error |
到网上搜了下,有的说是因为 inodes 用完,也就是根分区满了引起的,但执行 df - i 并非找个原因:
Filesystem Inodes IUsed IFree IUse% Mounted on | |
/dev/sda2 6406144 58534 6347610 1% / | |
tmpfs 8242797 2 8242795 1% /dev/shm |
继续找答案,按照网上的案例检查用户密码相关的系统文件 /etc/passwd 和 /etc/shadow,发现这两个文件权限有 i 选项,查询结果如下:
# lsattr /etc/passwd | |
—-i——–e- /etc/passwd | |
# lsattr /etc/shadow | |
—-i——–e- /etc/shadow |
备注:在 Linux 系统里,文件有 i 选项则表示不得对其做任何的修改,这也就导致了修改密码失败。
要解决该问题,则需要执行 chattr - i 命令,将以上两个文件 i 权限撤销掉
# chattr -i /etc/passwd | |
# chattr -i /etc/shadow | |
# lsattr /etc/passwd | |
————-e- /etc/passwd | |
# lsattr /etc/shadow | |
————-e- /etc/shadow |
然后再执行 passwd 修改密码,
# passwd | |
Changing password for user root. | |
New password: | |
Retype new password: | |
passwd: all authentication tokens updated successfully. |
修改完密码后,为了安全起见,可以执行 chattr + i 为用户密码系统文件增加 i 权限
# chattr +i /etc/passwd | |
# chattr +i /etc/shadow | |
# lsattr /etc/passwd | |
—-i——–e- /etc/passwd | |
# lsattr /etc/shadow | |
—-i——–e- /etc/shadow |
正文完
星哥玩云-微信公众号
